2016-08-02 3 views
1

ImageMagick을 사용하여 검정색 배경이있는 텍스트 필드를 제외한 이미지에서 모든 것을 자르려고합니다 (아래 예제 참조). 목표는 텍스트 이미지의 추가 작업을 위해 검은 영역을 격리하는 것입니다. 수백 개의 이미지에 대해 이러한 작업을 수행해야하며 대상 영역은 이미지간에 약간 이동합니다 (이미지는 필름 비디오의 스크린 그랩입니다).ImageMagick을 사용하여 이미지에서 텍스트 필드 자르기

그래서 검정색 배경이있는 영역을 적응 적으로 식별 한 다음 이미지에서 다른 모든 부분을 제거해야합니다.

예를 들어,이 설정 : enter image description here

을이 속으로 :
enter image description here

주요 관심사는 관심 영역의 왼쪽 아래 모서리가 모든 이미지의 수백을 통해 정렬되어 있다는 것입니다. 좀 더 많은 예제를보고

+0

쿨 질문은, 제가 테스트 할 수있는 몇 가지 더 많은 이미지를 가질 수 있습니다 내일 일어나요? –

답변

1

주제, 그럴 수 임계 값이 같은 "연결 성분 분석"을하고 넓은 검은 색 지역을 찾습니다

convert frame.png -threshold 30%      \ 
    -define connected-components:verbose=true  \ 
    -define connected-components:area-threshold=5000 \ 
    -connected-components 4 -auto-level output.png 

Objects (id: bounding-box centroid area mean-color): 
    1: 720x480+0+0 357.3,232.9 334572 srgb(255,255,255) 
    27: 542x40+93+416 426.1,441.0 11028 srgb(0,0,0) 

내가 빨간색에 그리면, 확인 된 두 번째 블롭 (당신은, 검은 폭이 매우 높은되지 않습니다 볼 수 있습니다) :

convert frame.png -fill none -stroke red -draw "rectangle 93,416 635,456" output.png 

enter image description here

당신은 유사한 명령으로 그것을 밖으로자를 수 :

convert frame.png -crop 542x40+93+416 output.png 

enter image description here

TAGES : 타임 코드, 타임 코드, 비디오

+0

고마워요 @ 마크, 유망 해 보입니다. 나는 그것을 시험해 볼 것이고 또한 당신과 함께 몇 장의 사진을 공유하려고 노력할 것이다. 장황한 산출물로부터 자르기 좌표를 저장하거나 전달할 수있는 합리적으로 쉬운 방법이 있습니까? – Bird

+0

우수! '30 %'비트를 약간 줄일 수 있습니다. 좌표를 쉽게 캡처 할 수 있지만 사용하는 OS에 따라 방법이 다릅니다 (Linux/OSX/Windows? 정확성을 높이기 위해 텍스트의 가능한 영역으로 이미지를 미리자를 수도 있습니다. –

+0

몇 장의 사진에서 테스트 해봤는데 텍스트 영역이 훨씬 잘 맞춰졌습니다. 저는 실제로'subprocess.call' 명령을 사용하여 파이썬 스크립트에서 전체 프로세스를 래핑하고 있습니다. 좌표를 파이썬으로 다시 가져 오는 방법을 생각할 수 있다고 생각합니다. 이것은 확실히 좋은 출발점입니다, ImageMagick이 할 수있는 일이 너무 많습니다! 도와 주셔서 감사합니다. – Bird

관련 문제