문제

제로 평균 가우스 첨가제 소음으로 손상된 일부 .jpg 이미지를 평균하고 싶습니다. 검색 후 이미지 매트릭스를 추가하고 합을 행렬 수로 나눕니다. 그러나 결과 이미지는 완전히 검은 색입니다. 일반적으로 이미지 수가 증가하면 결과 이미지가 더 좋아집니다. 그러나 더 많은 이미지를 사용하면 어두워집니다.

800x600 흑백 .jpg 이미지를 사용하고 있습니다. 다음은 내가 사용한 스크립트입니다.

image1 = imread ('PIC1.jpg');
image2 = imread ('PIC2.jpg');
image3 = imread ('PIC3.jpg');
image4 = imread ('PIC4.jpg');

sum = image1 + image2 + image3 + image4; 
av = sum / 4; 
imshow(av);
도움이 되었습니까?

해결책

문제는 아마도 이미지 데이터가 모든 유형이라는 것입니다. uint8, 따라서 그것들을 모두 추가하면 픽셀 값의 255 값으로 채도가 발생하여 대부분 흰색 이미지를 제공하여 이미지 수로 나눌 때 대부분 검은 색으로 보입니다. 이미지를 다른 데이터 유형으로 변환해야합니다. double, 평균화를 수행 한 다음 다시 변환합니다. uint8:

% Load your images:
image1 = imread('PIC1.jpg');
image2 = imread('PIC2.jpg');
image3 = imread('PIC3.jpg');
image4 = imread('PIC4.jpg');

% Convert the images to type double and sum them:
imageSum = double(image1) + double(image2) + double(image3) + double(image4);

% Divide by the number of images and convert back to type uint8:
averageImage = uint8(imageSum./4);

% Display the averaged image:
imshow(averageImage);

사이드 참고 : 변수에 기존 기능과 동일한 이름을 제공하지 않아야합니다. 이로 인해 문제/혼란이 발생할 수 있습니다. 이것이 제가 변수를 변경 한 이유입니다 sum 에게 imageSum (내장 기능이 있습니다 sum).

다른 팁

대체 솔루션을 사용합니다 Imlincomb 이미지 처리 도구 상자에서 :

I = imlincomb(0.25,I1, 0.25,I2, 0.25,I3, 0.25,I4);

imagesc (AverageMage)를 사용할 수도 있습니다. 자동 스케일 이미지가있는이 기능은 검은 색으로 보이지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top