2013-07-12 4 views
1

흑백 책 페이지로 구성된 UIImages가 있습니다. 페이지가 끝나는 위치 (공백이 시작되는 곳)를 기준으로 이미지를 "잘라내거나"자를 수 있기를 원합니다. 제가 의미하는 바를 설명하기 위해 아래 이미지를보십시오. 나는 "Sie"라는 단어 직후에 프로그램 적으로 이미지를 자르고 싶습니다.이미지의 끝을 감지하십시오.

enter image description here

나는이 문제에 대해 이동하는 방법을하지 확신합니다. 그러나 검은 색 픽셀이 항상 흑백이기 때문에 멈추는 위치를 감지 할 수는 있지만 제대로 수행하는 방법을 알지 못한다는 것을 생각해 보았습니다. 아무도 통찰력을 제공하거나 이것이 어떻게 수행 될 수 있는지 말해 줄 수 있습니까?

정말 고마워요!

+0

사진이 내 마지막에 표시되지 않는 것 같습니다. 그래도 내 네트워크일지도 모르겠다. +1, 호기심. – Phas1c

답변

1

다음은 Python Imaging Library를 사용하여 작성한 파이썬 코드입니다. 가장 낮은 검정색 픽셀을 찾은 다음 해당 y 값에서 5 픽셀 아래로 이미지를 자릅니다.

import Image 

img = Image.open("yourimage.fileformat") 
width,_ = img.size 
lowestblacky = 0 
for i, px in enumerate(img.getdata()): 
    if px[:3] == (0, 0, 0): 
     y = i/width 
     if y > lowestblacky: 
      lowestblacky = y 
img.crop((0,0,width,lowestblacky+5)).save("yourimagecropped.fileformat") 

파이썬은 거의 모든 운영 체제에서 사용할 수 있으므로이 기능을 사용할 수 있기를 바랍니다. 마지막 검정 픽셀 바로 다음에 이미지를 자르려면 마지막 행에서 "+5"를 제거하거나 원하는 값으로 변경하십시오.

0

이미지를 픽셀 값으로 변환하십시오. 픽셀의 마지막 줄부터 시작하여 검정색 픽셀을 찾습니다. 일부가 발견되면 선이 이미지의 끝입니다. 검은 색 픽셀이 없으면 다음 픽셀 행으로 진행합니다.

실제로 "검은 색"픽셀이 너무 단순합니다. 좋은 솔루션은 회색 한계 (모든 이미지에 약간의 노이즈가 있음)를 사용하거나 픽셀 대비를 변경하는 것입니다. 감지 알고리즘을 시작하기 전에 이미지 필터 (예 : 가장자리 감지 또는 선명하게)를 적용 할 수도 있습니다.

+0

downvoters 의견을 남겨주세요. – Sulthan

관련 문제