openCV警告组件数据类型不匹配

openCV warning component data type mismatch

本文关键字:不匹配 数据类型 组件 警告 openCV      更新时间:2023-10-16

我在Cent OS机器上使用OpenCV 2.4.4。我的代码目前加载一个带有警告的图像:组件数据类型不匹配

下面是代码:
#include <cv.h>
#include <highgui.h>
#include "imglib.h"
int main( int argc, char** argv )
{
    Mat image = imread( argv[1], CV_LOAD_IMAGE_ANYDEPTH);
    imwrite("debugwriteout.jp2", image);
}

我在参数中传递了.jp2灰度文件的名称。图像有一个14位的像素深度,但是当我打印出像素值时,我得到的值超过20000,我的图像现在是一个完全黑色的正方形。如有任何建议,不胜感激。

附加信息:当我将imread标志更改为CV_LOAD_IMAGE_GRAYSCALE时,它成功地将图像转换为8位像素深度并打印有用的输出,因此我可以告诉jasper模块至少在某种程度上正确工作。

任何建议都将不胜感激,

谢谢

SZman,

我解决了我的问题。解决方案是高位位的位置。在16位上,对于14位深度,你有xxxxxxxxxxxxxx00而不是00xxxxxxxxxxxxxx。如果你想要正确的值,你必须在右边贴花2位

请使用这些标志阅读图像

Mat image = imread( argv[1], CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
相关文章: