2013-01-09 48 views
0

我目前工作的一些圖像處理算法,用MATLAB,這需要從目錄中的圖像加載並轉換成灰度。一些其他處理之後,圖像中的所有像素具有任一值0或者255我然後使用存儲圖像:如何存儲和讀取的灰度圖像 - MATLAB

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

在那之後,我重裝使用圖像:

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

當我查看與變量編輯圖像的值,這些值是不同的..幾乎所有255倍的值成爲252個多個像素,其存儲圖像之前分別爲0,成爲2 ..

爲什麼會這樣?是格式化的東西嗎?我該如何解決這個問題?如果我必須在Visual Studio中使用OpenCv加載此圖像,那麼值將如何改變?

回答

1

那是因爲你在JPEG格式,它採用有損壓縮保存,所以你得到一個非常類似的圖像,但添加了一些噪音(這就是爲什麼顏色計數大於2種原來的顏色多一點)是正常的。

我建議你保存你的圖像PNG格式(它使用的無損壓縮,並能得到良好的壓縮比)。

+0

感謝您的答覆...問題解決了 – zebbug