2011-08-02 4 views
3

픽셀 값이 1.000에서 1.003 사이 인 그레이 스케일 이미지가 있습니다.MATLAB의 이미지 대비 증가

다른 픽셀 간의 대비를 높이고 싶습니다. imcontrastimtool에서 시도했지만 시각적으로 개선되지는 않습니다.

아마도 픽셀> 1.000의 값을 늘리는 것이 좋습니다. 예를 들어 1.001에서 10, 1.002에서 20 등으로 매핑 할 수 있다면 좋을 것입니다.

+0

이중 값을 가진 회색 음영 이미지가있을 때 대부분의 함수는 그 값이'[0.0,1.0]'범위에 있도록 기대합니다. 따라서 강도를 선형 (선형 또는 비선형)으로 변환하는 방법에 관계없이 결과를 '[0,1]'범위로 매핑하는 것을 고려해야합니다. – Amro

답변

11

는 여전히 이미지 (나누기 0으로 문제를 일으킬 것이다) 비어있을 수 있다는 가능성을 볼 필요, 그리고

newRange = 1.0; %// choose the new maximum. (new minimum always at 0.0) 
imgMin = double(min(image(:))); 
imgMax = double(max(image(:))); 
image = (image - imgMin)/(imgMax - imgMin) * newRange; 

을보십시오.

증폭하고자하는 원하는 범위가 실제 최소값 또는 최대 값이 아니면 imgMinimgMax 값을 수동으로 설정할 수 있습니다.

1

이미지를 더 많이 표시하려면 이미지 데이터를 현재의 색상 맵의 전체 범위로 조정하고 이미지를 표시하는 imagesc을 사용할 수 있습니다.

실제로 이미지의 범위를 조정하려는 경우 최소값을 빼고 사용 가능한 범위로 나누어 표준화 할 수 있습니다.

0

imshow(image, [lowerBound upperBound])을 사용하여 이미지를 표시하는 경우 검정색으로 표시되는 lowerBound과 흰색으로 표시되는 upperBound 사이의 선형 비율로 나타나야합니다. 예를 들어, imshow(image, [1.000 1.003])과 같은 것을 사용하면 이미지를 표시 할 수 있습니다.

4

나는이 여기에 요청하고 있지만 질문의 제목 (비파괴) 이미지 그건 후에도 에 대비를 증가하는 방법을 찾고 여기에 와서, 나처럼, 다른 사람을 이끌 수 정확히되지 않습니다 실현 ,

sigmoid curve on photoshop

간단한 방법이 작업을 수행하기 위해 (우리가 [0,1] 범위의 표준화 된 이미지가 가정 : - 정규화 한 곡선으로 할 수있는 것과 비슷한는 sigmoid 모양으로 설정하여 포토샵에서 기능 예를 들어 MATLAB의 mat2gray 함수를 통과 한 후) cos ine 기능. 방법은 다음과 같습니다. 우리는 먼저 코사인 곡선을 반영하여 가장 낮은 점이 0에오고, 가장 높은 점은 반전되지 않고 π에서 가장 높습니다. 입력을 최대 값 1을 가질 때 가장 높은 점이 발생하도록 입력을 π만큼 스케일합니다.

img_contrast = (-cos(pi * mat2gray(img_original)) + 1)/2; 

호프 도움 : 그리고 마지막으로, 결과는 아래의 간단한 수식 1 및 2를 추가로 나누어 (코사인 원래 [-1,1]에서) 출력 범위 [0,1] 그 결과를 정규화!