2 xiao969856 xiao969856 于 2017.09.08 09:26 提问

OpenCV显示的图像不正常

我用opencv的mat类接受从相机读取的unsigned char类型数据,
然后用imshow函数在窗口显示,但是不知道为什么显示的图像有点问题,
下面部分的图像是正常的,上面部分则是不正常的紫色,请问这是什么原因,
有知道的能说明一下吗?谢谢了。
图片说明

3个回答

QiaXi
QiaXi   2017.09.10 02:00
已采纳

正常部分大概刚好全尺寸的1/3, 目测是数据拷贝中频道数的问题。如果你用了指针,检查uchar/vector3b。p++/ p+=3.

xiao969856
xiao969856 已经解决了,是相机参数设置和程序有差异造成的
2 个月之前 回复
Small_Mouse0
Small_Mouse0   Ds   Rxr 2017.09.08 09:38

mat类接受从相机读取的unsigned char类型数据

可能是数据在转化时出了点问题,,题主可以打个断点看一下获取到的,,,unsigned char类型数据内容是,,

转mat题主用的是那一个方法?

Small_Mouse0
Small_Mouse0 回复SuperHeroMario: 你看看【从相机读取的unsigned char类型数据】什么样,,这可能是数据类型不符合cv_8u3,没报错是强转了,,可能部分数据发生变化,,,,题主看看imgData的内容,可以手动创建一个Mat然后一个值一个值转化为规范的,,在赋值给mat
2 个月之前 回复
xiao969856
xiao969856 Mat imt(960,1280,CV_8UC3,ImgData);
2 个月之前 回复
what951006
what951006   Rxr 2017.09.08 11:49

相机传输来的是流,你mat这样取肯定有问题。会不会流出错误了,试试用个简单的代码来检测。

Mat mat;
VideoCaputre vc(0);
while(true)
{
vc>>mat;
imshow(mat);
waitkey(30);
}

这样测试一下。如果还花屏的话,这个问题,可能是摄像头的问题了

xiao969856
xiao969856 相机的数据是通过自定义的函数读取出来的,函数没问题
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片