3

촬영 한 문서의 이미지를 스캔 한 것처럼 보이게하고 싶습니다. 스캐너는 전체 문서 위에 일정한 광원을 놓을 것이므로 문서의 사진에서 그 효과를 얻고 싶습니다. 원하는 효과는 어두운 곳의 그림자 나 부분을 없애거나 (최소한 눈에 띄지 않게) 전체 사진을 상당히 밝게 만드는 것입니다.이미지를 균일하게 밝게 만드는 법 (파이썬/PIL 사용)

내 첫 번째 생각은 대상 이미지의 가장 밝은 부분을 찾고 전체 이미지를 밝게 만드는 것입니다. 그것이 올바른 알고리즘이라고 가정하면 PIL에서 어떻게 처리 할 수 ​​있습니까? 밝기 조절 방법이 있습니까? 기타?

(이 this earlier question의 후속이다.)

+0

당신의 샘플 이미지를 추가 할 수 있습니까? – mmgp

답변

2

는 첫 번째 시도로, 이미지를 임계 화하려고합니다. 어두운 영역은 검은 색으로, 밝은 영역은 흰색이됩니다. 나는 PIL을 사용하지 않았지만 쉽게 할 수있는 방법이 있다고 상상한다.

2

ImageChops.screen (image1, image2)을 이미지 사본 2 개로 시도해보십시오. 만족스럽지 않으면 ImageChops 모듈의 다른 기능을 사용해보십시오.

또한 이미지를 그레이 스케일로 변환하는 것이 좋습니다. ImageOps.grayscale (image).

0

먼저 김프와 같은 이미지 편집 프로그램에서 수동으로 시도해보십시오. 당신이 찾고있는 것은 밝기와 대비를 조절하는 것입니다.

+0

아니요, 더 어두운 영역은 이미 밝은 영역보다 밝기가 커야하기 때문에 더 이상입니다. – Greg

0

어떤 이미지 유형입니까? 텍스트 페이지처럼 이상적으로 순수한 흑백이라고 가정하면 원시 데이터는 흑백이 아닌 다양한 글자가있는 회색 음영 그라디언트 일 것입니다. 상수에 대해 임계 값을 지정하면 좋은 결과를 얻을 수 있지만 조명이 너무 고르지 않거나 렌즈 눈부심이 간섭하지 않는 경우는 아닙니다. 이미지를 평활화 된 버전과 비교하여 임계 값을 지정합니다. PIL_usm.gblur (image, radius)를 사용하여 부드럽게하십시오. 반경 (픽셀 단위)은 글자의 요소 너비와 비슷한 10, 20 또는 일부 값과 같습니다. 단지 그림에 대한 옛 노트에서 빠른 hackcode :

import Image 
import PIL_usm 
# see http://www.cazabon.com/pyCMS/PIL_usm.html for PIL_usm 

img = Image.open(...) 
sm = PIL_usm(img, 10) 
thr = Image.ImageChops.subtract(img,sm, .001, 128) 
# or whatever works 4u... 

이 문서는 사진이나 기타 비 이중 레벨 그래픽이 있으면 OTOH은, 좀 더 영리해야합니다.

+0

흥미로운 제안 --- 시도해 보셨습니까? –