2014-12-06 50 views
0

我有RGB博物館的JPG圖像。他們中的大多數人都有一個或多個方面的圖像腳註,我想刪除它們。我使用繪圖軟件手動執行此操作。現在我應用以下matlab代碼自動刪除圖像腳註。對於某些圖像,我獲得了很好的效果,但對於其他圖像,它不會刪除任何邊框請任何人通過更新此代碼來幫助我將其應用於所有圖像?刪除一些頂部,下行和右側,並使用matlab留下一些jpg圖像邊框的列

'rgbIm = im2double(imread('A3.JPG')); 
      hsv=rgb2hsv(rgbIm); 
      m = hsv(:,:,2); 
      foreground = m > 0.06; % value of background 
      foreground = bwareaopen(foreground, 1000); % or whatever. 
      labeledImage = bwlabel(foreground); 
      measurements = regionprops(labeledImage, 'BoundingBox'); 
      ww = measurements.BoundingBox; 
      croppedImage = imcrop(rgbImage, ww);' 
+0

你到目前爲止嘗試了什麼?你面臨什麼問題? – hbaderts 2014-12-06 13:03:44

+0

我有(jpg)格式的博物館圖像數據庫,每個圖像都有邊框,我應該刪除此邊框,因爲它不在原始圖像中。 – zenab 2014-12-07 19:11:21

+0

我喜歡展示一些博物館形象的例子,但我不知道我該怎麼做 – zenab 2014-12-07 19:12:07

回答

0

爲了刪除邊界,您可以使用「imclearborder」,它在邊界檢查標記的組件並清除它們。警告!如果ROI觸及邊界,則可能會刪除。爲了避免這種情況,您可以在清除邊界之前使用「imerode」和所需的「strel」 - (線或光盤)。準確性或推廣適用於所有圖像的方法完全取決於分離前景和背景的「閾值」。

更通用的方法可能是 - 嘗試提取腳註的屬性。例如,如果它們只是一些文本,則可以通過使用沿着列的線結構元素的邊緣檢測和形態打開來輕鬆地刪除它們。 (文本檢測的基本屬性)

希望它有幫助。

如果您上傳圖片,我可以給你一個清晰的想法或方法。

+0

感謝您的回覆..我可以上傳圖片,但上傳時沒有發生上次我上傳時發生的幀。如果你可以給你的電子郵件,我可以給你從我的圖像數據庫中的一些例子。 – zenab 2014-12-13 08:44:04

+0

感謝您的回覆..我可以上傳圖片,但上傳時沒有發生上次我上傳時發生的幀。如果你可以給你的電子郵件,我可以給你從我的圖像數據庫中的一些例子。 - – zenab 2014-12-13 21:26:40

相關問題