2017-08-17 137 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