2015-06-24 69 views
2

的OCR我試圖使用MATLAB的OCR一段文字recognition.This是我的代碼 - 的一部分錯誤MATLAB

r = ocr(n1,'TextLayout','Word') 
if strcmp(r.Text,char('_'))==1 | strcmp(r.Text,char('/'))==1 
     figure,imshow(n1);title('False image to be removed'); 
else 
     n2=imadd(n2,n1);figure,imshow(n2);title('uuu1'); 
end 

這是我ocr result-

r = 

    ocrText with properties: 

         Text: '/ 

' 
    CharacterBoundingBoxes: [3x4 double] 
     CharacterConfidences: [3x1 single] 
        Words: {'/'} 
     WordBoundingBoxes: [315 133 16 9] 
      WordConfidences: 0.7857 

所以,識別的文本是/,所以它應該已經進入我的代碼的if部分。但它總是進入else部分。我該如何解決這個問題?

+0

據我所知,r.Text末尾有空格,必須在檢查前擦除。或者只是檢查第一個字符。 – Matt

+0

謝謝Matt,這是問題所在。我錯過了空間。 – Joker

回答

1

據我所見,r.Text末尾有空格,你必須在檢查前擦除。或者,只需檢查r.Text的第一個字符。

從字符串刪除尾隨和前導空格,你可以使用:

str = strtrim(r.Text) 

要只解決第一個字符,你可以使用:

r.Text(1) 

所以,你的行會之一以下內容:

if strcmp(strtrim(r.Text),char('_'))==1 | strcmp(strtrim(r.Text),char('/'))==1 

if strcmp(r.Text(1),char('_'))==1 | strcmp(r.Text(1),char('/'))==1