QImage FitnessMainDlg::MatImageToQt(const cv::Mat &src)
{
//CV_8UC1 8位无符号的单通道---灰度图片
if (src.type() == CV_8UC1)
{
//使用给定的大小和格式构造图像
//QImage(int width, int height, Format format)
QImage qImage(src.cols, src.rows, QImage::Format_Indexed8);
//扩展颜色表的颜色数目
qImage.setColorCount(256);
//在给定的索引设置颜色
for (int i = 0; i < 256; i++)
{
//得到一个黑白图
qImage.setColor(i, qRgb(i, i, i));
}
//复制输入图像,data数据段的首地址
uchar *pSrc = src.data;
//
for (int row = 0; row < src.rows; row++)
{
//遍历像素指针
uchar *pDest = qImage.scanLine(row);
//从源src所指的内存地址的起始位置开始拷贝n个
//字节到目标dest所指的内存地址的起始位置中
memcmp(pDest, pSrc, src.cols);
//图像层像素地址
pSrc += src.step;
}
return qImage;
}
//为3通道的彩色图片
else if (src.type() &#
mat 转 Qimage
最新推荐文章于 2024-06-24 22:45:03 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)