2017-08-17 45 views
-2

時,當我讀到灰度圖像,我總是得到負灰度值,如下圖墊總是負值:爲什麼讀灰度圖像

-1246382668 -1246382667 -1246382667 -1246382667 -1263028297 -1296911180 -1280068686 -1246382667 -1280068171 -1330597709 -1229539658 -1229539658 -1229539658 -1263159883 -1263225676 -1280068684 -1263225676 -1280068428 -1280068685 -1330466126 -1347440464 -1364283729 -1313688910 -1313754703 -1313754703 -1296977487 -1296911694 -1280068686 -1212762442 -1195853897 -1195853640 -1179010631 - 1179010631 -1179010631 -1195919433 -1195853640 -1195853640 -1263094090 - 1296911180 -1330597710 -1280200271 -1229540429 -1162167626 -1094861379 -1145323842 -1195853637 -1195919433 -1179010888 -1179010631 -1128613190 -1077953348 -1044266561 -960512065 -791623994 -673720368 -639968550 -690562599 -741092394 -926036531 -1061107512 -1162167616 -1212630856 -1212696649 -1212696649 -1212630856 -1246382153 -1263225675 -1229671244

爲什麼?

圖片如下: infrared walker picture

的代碼如下:

//將圖片數據存入opencv結構體中。 

QTextCodec* code = QTextCodec::codecForName("gb18030"); 

std::string name = code->fromUnicode(fileName).data(); 

m_cvImageTobeProcessed = cv::imread(name); 
+2

請提供[mcve]。 –

+0

@SmallBird請使用[編輯]在問題本身中加以澄清(尤其是代碼)。還請包含輸入圖像。 – beaker

+0

您正在打印簽名值。嘗試打印出無符號值。 –

回答

0

嘗試使用CV :: imread的API。

(參見:http://docs.opencv.org/2.4/doc/tutorials/introduction/display_image/display_image.html

這個調用加載圖像灰度(這可能是你想要什麼?)

cv::imread(filePath, cv::CV_LOAD_IMAGE_GRAYSCALE) 

讀取圖像的默認設置爲IMREAD_COLOR嘗試讀取 圖像並將其轉換爲3通道BGR彩色圖像。這可能會導致問題...

+0

非常感謝!這個問題已經解決了! – SmallBird

+0

如果我的答案幫助你解決了你的問題,請將它標記爲那個,這樣這個問題就不存在於「未答覆」的池中(並且我得到了一些觀點) – Flocke