신문 또는 잡지 일 수있는 문서 이미지가 있습니다. 예를 들어, 스캔 한 신문. 모든/대부분의 텍스트를 제거하고 이미지를 문서에 보관하려고합니다. 누구든지 문서에서 텍스트 영역을 감지하는 방법을 알고 있습니까? 아래는 그 예입니다. 미리 감사드립니다!문서 이미지에서 텍스트 영역을 감지하는 방법은 무엇입니까?
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. 문서 이미지에서 텍스트 영역을 제거하는 방법은 무엇입니까?
- 3. 자연 텍스트 이미지에서 문자를 감지하는 방법은 무엇입니까?
- 4. Matlab을 사용하여 이미지에서 텍스트 영역을 추출하는 방법은 무엇입니까?
- 5. Java의 다른 이미지에서 이미지를 감지하는 방법은 무엇입니까?
- 6. Matlab을 사용하여 이미지에서 타원을 감지하는 방법은 무엇입니까?
- 7. 이미지에서 불법 콘텐츠를 감지하는 방법은 무엇입니까?
- 8. 파이썬과 cvblob없이 이미지에서 번호판을 감지하는 방법은 무엇입니까?
- 9. 그려진 이미지에서 마우스 클릭을 감지하는 방법은 무엇입니까?
- 10. 그림에서 같은 색으로 영역을 감지하는 방법은 무엇입니까?
- 11. 이미지의 투명 영역을 감지하는 방법은 무엇입니까?
- 12. 만화책 페이지에서 사각형 영역을 감지하는 방법은 무엇입니까?
- 13. 이미지에서 텍스트의 좌표를 찾아 텍스트 영역을 추출합니다.
- 14. 이미지에서 텍스처 또는 비 - 텍스처를 감지하는 방법
- 15. 이미지에서 원을 감지하는 알고리즘
- 16. 스캔 한 이미지에서 텍스트 문서 읽기
- 17. 이미지에서 객체를 감지하는 빠른 알고리즘
- 18. matlab의 부울 이미지에서 검은 영역을 확장하는 방법은 무엇입니까?
- 19. MATLAB의 바둑판 이미지에서 다각형 영역을 계산하는 방법은 무엇입니까?
- 20. 이미지에서 클릭 가능한 영역을 만드시겠습니까?
- 21. ScatterViewItem의 이미지에서 컨트롤 영역을 분리합니다.
- 22. 이미지에서 클릭 가능 영역을 만들려고 시도합니다.
- 23. 큰 이미지에서 작은 이미지의 통화를 감지하는 방법은 무엇입니까?
- 24. 이미지에서 마크를 감지하는 가장 좋은 방법은 무엇입니까? OpenCV
- 25. 이미지에서 직사각형을 감지하는 가장 간단한 * 올바른 * 방법은 무엇입니까?
- 26. Emgu CV를 사용하여 이미지에서 화살표를 감지하는 방법은 무엇입니까?
- 27. 손으로 그려진 회로의 스캔 이미지에서 로직 게이트를 감지하는 방법은 무엇입니까?
- 28. 특정 텍스트 영역을 삭제하는 방법은 무엇입니까?
- 29. 내 창으로 텍스트 영역을 제한하는 방법은 무엇입니까?
- 30. 들어가는 텍스트 영역을 다시 POST하는 방법은 무엇입니까?
감사합니다! I – kim
답변 해 주셔서 감사합니다! 그것은 아주 인상적이다 !!!! 당신이 말했듯이, 그것은 순수한 흰색 배경에 대해 작동합니다. 배경과 텍스트가 흰색과 검은 색이 아닌 경우 어떻게해야합니까? 예를 들어이 경우 (http://www.rmeassets.com/images/rmemedia/1-2_Newspaper-Ads-color_1.jpg) 배경색은 녹색이고 텍스트는 흰색입니다. 귀하의 정보와 코드는 높이 평가 될 것입니다. 나는 당신의 코드가 실패한 한 가지 경우를 가지게되었다. 이메일을 보내 주셔도됩니다. 이미지는 저작권으로 보호되어 있으므로 여기에 게시하지 않았습니다. 이메일을 알 수 있습니까? 고마워요! :) – kim
어쨌든 다른 배경색을 다루는가? 감사합니다! – kim