210319opencv图像的存储与显示

一、学习的知识点

1.一个像素点由RGB三基色组成,位深度为24的图片,基色的位数比为8:8:8,所以一个像素点占三个字节

2.opencv的Mat类存放图片的格式是BGR格式,需要转换成RGB格式

2.1方法一:使用opencv的函数

Mat pic_mat=imread("royal.jpg");
cvtColor(pic_mat,pic_mat,COLOR_BGR2RGB);

2.2方法二:使用QT的函数

Mat pic_mat=imread("royal.jpg");
QImage imge(pic_mat,pic_mat.cols,pic_mat.rows,pic_mat.step,QImage::Format_RGB888); //转换成RGB格式
ui->label->setPixmap(QPixmap::fromImage(imge));

3.将Mat类的数据存放到数组,并显示

Mat pic_mat=imread("royal.jpg");
cvtColor(pic_mat,pic_mat,COLOR_BGR2RGB);
uchar ImageArry[400*400*3]={0};
for(int i=0;i<pic_mat.rows;i++)
{
    uchar* cur_ptr=pic_mat.ptr(i);
    for (int j=0;j<pic_mat.cols;j++)
    {
        //ImageArry[i*400+3*j+0]=cur_ptr[3*j+0];
        ImageArry[i*pic_mat.rows*3+3*j+0]=cur_ptr[3*j+0];
        ImageArry[i*pic_mat.rows*3+3*j+1]=cur_ptr[3*j+1];
        ImageArry[i*pic_mat.rows*3+3*j+2]=cur_ptr[3*j+2];
    }
}
QImage imge(ImageArry,pic_mat.cols,pic_mat.rows,pic_mat.step,QImage::Format_RGB888);
ui->label->setPixmap(QPixmap::fromImage(imge));

二、上课没有听懂或者没有理解的地方

三、当天学习的收获

了解到图片数据存储的原理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值