2013-01-09 2 views
0

현재 이미지 처리 알고리즘 인 MATLAB을 사용하고 있습니다.이 이미지 처리 알고리즘은 디렉토리의 이미지를로드하여 그레이 스케일로 변환해야합니다. 다른 처리 후의 화상의 모든 화소 I 그때 사용하여 이미지를 저장하는 하나의 값으로 0 또는 255 가지고그레이 스케일 이미지를 저장하고 읽는 방법 - MATLAB

// image is not defined before hand; its automatically set to type UINT8 
image = imread('FAST_tree_test_image_1_gray_matlab.jpg'); 

I을 : 그 후

// temp is of type double 
imwrite(temp,'FAST_tree_test_image_1_gray_matlab.jpg'); 

를 I 사용하여 이미지를 다시 변수 편집기를 사용하여 이미지의 값을 보면 값이 다릅니다. 거의 255 개의 값이 252가되고 이미지를 저장하기 전에 많은 픽셀이 2가되었습니다.

왜 이렇게 되나요? 형식 지정에 관한 것입니까? 이 문제를 어떻게 해결할 수 있습니까? Visual Studio에서이 이미지를 OpenCv로로드해야한다면 어떻게 변경 될까요?

답변

1

손실 압축을 사용하는 JPEG 형식으로 저장하므로 이미지가 비슷하지만 약간의 노이즈가 추가되어 정상적인 현상입니다 (색상 수가 원래 색상보다 약간 더 많은 이유입니다).

이미지를 PNG 형식으로 저장하는 것이 좋습니다 (무손실 압축을 사용하고 좋은 압축률을 얻을 수 있음).

+0

답장을 보내 주셔서 감사합니다 ... 문제가 해결되었습니다. – zebbug

관련 문제