我有一份文件圖像,可能是報紙或雜誌。例如,一份掃描的報紙。我想刪除全部/大部分文本並在文檔中保留圖像。任何人都知道如何檢測文檔中的文本區域?下面是一個例子。提前致謝!如何從文檔圖像中檢測文本區域?
0
A
回答
2
物體識別的常用模式將在這裏工作 - 門檻,檢測區,過濾區,那麼你需要與其他區域的。
閾值在這裏很容易。背景是純白色的(或者可以被過濾爲純白色),因此倒置灰度圖像中大於0的任何東西都是文本或圖像。然後可以在這個閾值二值圖像內檢測區域。
對於過濾區域,我們只需要確定是什麼使文本與圖片不同。由於每個字母都是自己的區域,因此文本區域會變小。圖片是比較大的地區。假設沒有任何圖片與頁面上任何位置的單個字母的大小有關,則按照具有適當閾值的區域區域進行過濾將拉出所有圖片並刪除所有文本。如果他們那麼可以使用其他過濾標準(飽和度,色調方差,...)。
一旦區域被區域和飽和度標準過濾,那麼可以通過將原始圖像中落入過濾區域的邊界框內的像素插入到新圖像中來創建新圖像。
MATLAB實現:
%%%%%%%%%%%%
% Set these values depending on your input image
img = imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/21044/6ce011abjw1elr8moiof7j20jg0w9jyt.jpg');
MinArea = 2000; % Minimum area to consider, in pixels
%%%%%%%%%
% End User inputs
gsImg = 255 - rgb2gray(img); % convert to grayscale (and invert 'cause that's how I think)
threshImg = gsImg > graythresh(gsImg)*max(gsImg(:)); % Threshold automatically
% Detect regions, using the saturation in place of 'intensity'
regs = regionprops(threshImg, 'BoundingBox', 'Area');
% Process regions to conform to area and saturation thresholds
regKeep = false(length(regs), 1);
for k = 1:length(regs)
regKeep(k) = (regs(k).Area > MinArea);
end
regs(~regKeep) = []; % Delete those regions that don't pass qualifications for image
% Make a new blank image to hold the passed regions
newImg = 255*ones(size(img), 'uint8');
for k = 1:length(regs)
boxHere = regs(k).BoundingBox; % Pull out bounding box for current region
boxHere([1 2]) = floor(boxHere([1 2])); % Round starting points down to next integer
boxHere([3 4]) = ceil(boxHere([3 4])); % Round ranges up to next integer
% Insert pixels within bounding box from original image into the new
% image
newImg(boxHere(2):(boxHere(2)+boxHere(4)), ...
boxHere(1):(boxHere(1)+boxHere(3)), :) = img(boxHere(2):(boxHere(2)+boxHere(4)), ...
boxHere(1):(boxHere(1)+boxHere(3)), :);
end
% Display
figure()
image(newImg);
正如你可以在下面鏈接的圖片中看到,它需要什麼。除圖片和標頭以外的所有內容均已刪除。好消息是,如果您正在從頭版開始處理報紙,那麼對於彩色和灰度圖像來說,這可以很好地工作。
結果:
相關問題
- 1. 如何從圖像中檢測文本區域?
- 2. 使用EmguCV從圖像中檢測文本區域
- 3. 如何檢測文檔中的圖像
- 4. 如何檢測圖像中的文字區域?
- 5. python檢測文檔中的圖像
- 6. 從圖像代碼中分離文本和圖像區域
- 7. Javascript OnChange檢測文本區域
- 8. 使用javascript檢測文本區域中的選定文本
- 9. 圖像的文本檢測
- 10. 如何檢測圖像內的「圖像區域」百分比?
- 11. 在屏幕截圖中檢測文本的區域
- 12. 檢查的語言從文本區域
- 13. 檢測空白區域的圖像
- 14. 如何從視頻中檢測字幕並將其複製到文本區域
- 15. 文本區域的背景圖像
- 16. 如何檢測二進制圖像中的數字區域
- 17. 如何檢測光標是否位於Firefox的文本區域
- 18. 如何使用Matlab提取圖像中的文本區域?
- 19. 如何在文本區域放置背景圖像(在IPAD中)
- 20. Android:如何將文本寫入圖像中的特定區域
- 21. 檢測圖像中的文本
- 22. 如何在特定的矩形區域內從pdf文檔中提取文本?
- 23. 如何從文本區域中選擇文本作出反應?
- 24. 如何從文本框中的文本區域添加值?
- 25. 如何從圖像中獲取區域?
- 26. 檢測圖像上的文本並計算使用OpenCv的區域
- 27. 通過從圖像中找到文本的座標來提取文本區域
- 28. 如何將文本從文件移動到文本區域?
- 29. 如何從谷歌圖表中刪除區域文本
- 30. 檢測報紙文章區域(文本塊)
謝謝您的回答!我 – kim
感謝您的回答!這是相當令人印象深刻的!正如你所說,它適用於純白色背景。如果背景和文字不是白色和黑色呢?例如,這種情況下,背景色爲綠色,文字爲白色。您的信息和代碼將受到高度讚賞。我碰巧遇到了一個你的代碼失敗的案例。我可以給你發電子郵件,你看看嗎?由於該圖像受版權保護,所以我沒有在這裏發佈。我能知道你的電子郵件嗎?非常感謝你! :) – kim
無論如何處理其他背景顏色?謝謝! – kim