最近在用Qt的时候发现一个奇怪的问题,一些Opencv读取的图片加载到QPixmap后,在Qt的label控件上显示的时候出现了错位问题,大概是这个形式
参考OpenCV中cv::Mat字节对齐方法
在转换为QPixmap的时候需要进行字节对齐,最简单的方法是将Mat进行缩放,使其长宽变成4的整倍数,然后传给QPixmap
cv::Mat img = cv::imread(XXX);
cv::resize(img,img,cv::Size(img.cols/4*4,img.rows/4*4));