2013-06-19 51 views
2

我是新來的stackoverflow,並希望我的問題是在正確的地方?如何根據不同的圖像位置做不同的動作(具有傳統外觀的數字書)

我準備做一本書看起來一樣紙的應用程序。所以我有本書所有頁面的圖像。

的問題是,當用戶點擊/上月底點的任何一句話水龍頭,對句子的一些細節出現(在另一種語言的句子,即翻譯)

像這樣的東西我想: enter image description here

我想知道我怎麼能實現呢?比一本500頁的書的每一句可怕的東西更好!

+0

你有一些例子嗎? – Daniel

+0

@Daniel我編輯了這個問題 – user2490629

+0

您的意思是說,您將每個頁面存儲爲位圖? – StaWho

回答

1

不完全是你一直期待的,但有一些線索。

除非你做了一些OCR識別/分割你的文字,我真的不知道你是如何從圖像檢測句子(如果我錯了,有人糾正我)以及它們突出顯示它們或提供視覺提示;所以我假設你會使用一些OCR和你的圖像。 (如果它不夠好返回字符/句子的區域,這樣可以提供視覺線索,並選擇相關的翻譯那句話)

在這裏,你有一些鏈接,這些都是免費使用OCR庫:

https://stackoverflow.com/questions/744966/any-open-source-c-sharp-ocr-library

The best .NET OCR API?

當你完成OCR-ING你現在有你的書作爲一個字符串,你會想要把它分解:

MatchCollection matches = Regex.Matches(_text, @"[A-Z].*?\."); 
string[] strings = matches.Cast<Match>().Select(s => s.Value).ToArray(); 

(正則表達式大致沒有那個任務,它需要一些調整,如處理段)

我的答案的其餘部分是不是你一直期待,我在這裏張貼反正因爲這是我在回答你的問題時創建的,所以你可能會發現將它放在你的位圖上是非常有用的。 因此可以隨意跳過它。我們可以爭論它的實用性,這裏有幾個關於你爲什麼喜歡它的論點:儘量少閱讀,因爲你可以設置字體大小,你可以在裏面搜索IMO是一個很棒的功能。

所以在這裏,它是:

我已經使用了FlowDocumentReader代表句子。在這裏,我使用了一個Run和一個工具提示,但是您可以使用一個可以打開某個網站的超鏈接。

IEnumerable<Paragraph> paragraphs = strings.Select(s => new Paragraph(new Run(s) {ToolTip = "Translated text"})); 
document.Blocks.AddRange(paragraphs); 

和相關的XAML:

<FlowDocumentReader> 
    <FlowDocumentReader.Document> 
     <FlowDocument x:Name="document" /> 
    </FlowDocumentReader.Document> 
</FlowDocumentReader> 

結果:

enter image description here

編輯

這就是爲什麼我建議你使用OCR,以獲得區域的話,沒有別的。

enter image description here

(從http://www.pixel-technology.com/freeware/tessnet2/拍攝)

var tesseract = new Tesseract(); 
var bitmap = new Bitmap("snap00110.png"); 
List<Word> doOcr = tesseract.DoOCR(bitmap, new Rectangle(new Point(0, 0), bitmap.Size)); 
foreach (var word in doOcr) 
{ 
    var region = new Rectangle(word.Left, word.Top, word.Right - word.Left, word.Bottom - word.Top); 
} 

當你有話的地區,你將能夠實現你想要的。

注:我一直在嘗試圖書館,你可能不得不重建它,如果你在.NET 4.0下

+0

merci @Aybe,我已經有整個人物,句子,甚至我知道他們在哪個頁面,所以我可以跳過OCRing ..主要問題是知道他們在網頁中的位置... +1 – user2490629

+0

查看我的更新回答。 – Aybe

+0

非常感謝你@Aybe – user2490629

相關問題