我正在嘗試使用OpenCV(2.4.0)爲C++加載和顯示.PGM圖像。如何使用OpenCV顯示PGM圖像
void open(char* location, int flag, int windowFlag)
{
Mat image = imread(location, flag);
namedWindow("Image window", windowFlag);
imshow("Image window", image);
waitKey(0);
}
我打電話開這樣的:
open("./img_00245_c1.pgm", IMREAD_UNCHANGED, CV_WINDOW_AUTOSIZE);
的問題是,在打開的窗口時顯示的圖像比,如果我打開該文件用IrfanView暗。 另外,如果我想這個圖像寫入到另一個這樣的文件:
Mat imgWrite;
imgWrite = image;
imwrite("newImage.pgm", imgWrite)
我會比原來不同的文件內容和IrfanView中會顯示這是我的功能顯示與imshow。
在imread for .PGM文件中是否有不同的標誌,以便我可以獲取要顯示和保存的原始文件?
編輯:圖片pgm file
編輯2:指出,:IrfanView的規格化圖像255的最大象素值。 爲了使用OpenCV清晰地看到圖像,我應該在Mat中加載時也對圖像進行標準化。這是否可以直接使用OpenCV函數,而無需遍歷像素並修改其值?
也許Irfanview的自動正常化,即對比度拉伸你的形象和OpenCV是不是...也許嘗試節省Irfanview的歸一化的,對比度拉伸圖像和裝載到這OpenCV的,或者對比度拉伸顯示它之前OpenCV中的黑暗歲月。 –
也許你可以找到答案[這裏(看看兼容性)](http://netpbm.sourceforge.net/doc/pgm.html)。你能給你的PGM文件的鏈接? – sturkmen
我已經添加了照片的鏈接! –