OpenCV显示的图像不正常

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

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

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

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

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

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

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

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