持续更新——Qt与opencv 图像处理 随笔记录

本文分享了图像处理的实用技巧,包括读取并处理本地图片、QImage与QByteArray转换、QT界面图像显示及图像数据操作。深入探讨了图像读取、单通道提取、ROI截取与保存流程,以及QT环境下图像文件读取、显示和数据处理的实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本博客主要记录自己平时查找的图像处理的方法。

1、读入本地图像,提取单通道图像,截取ROI区域,保存图像

//读入图像
Mat img = imread("./dataset/imgpictures_car1/00497.jpg");
//提取单通道图
vector<Mat> channels;
split(img, channels);
imgSingle = channels.at(1);
//截取ROI区域
//Rect(rect.x, rect.y, rect.width, rect.height)
Mat roi;
Rect rect;
roi = imgSingle(Rect(x,y,height,width));
//保存图像
int k = 0;
imwrite("D:\\WorkSpace\\QTProject\\TestFODReportTwo\\resultimg\\" +to_string(k)+".jpg",roi);

2、QImage转QByteArray

QBuffer buffer;
buffer.open(QIODevice::ReadWrite);

QImage pixmap("monkey.jpg");
//pixmap不能为空,必须先将图片加载到pixmap中
pixmap.save(&buffer,"jpg");

QByteArray pixArray;
pixArray.append(buffer.data());

但是pixArray的大小size不等于QImage.height*QImage.width。这个地方还没有弄明白,日后补充。

3、QT中读取本地文件夹中的图片,并在QLable中显示

    //--------------读取本地文件夹中的图像,并在QT界面上显示-------------//
    #include <io.h>     //for _finddata_t
    #include <cstring>      //for strcat_s

    //本地文件夹所在路径
    char path[150] = "./dataset/init_img/";
    strcat_s(path, "*.jpg");
    long long handle;
    struct _finddata_t fileinfo;
    handle = _findfirst(path, &fileinfo);
    if (-1 == handle)
        qDebug()<<-1;
    printf("%s\n", fileinfo.name);
    
    Mat frame;

    do
   {
       char filename[150] = "./dataset/init_img/";
       strcat_s(filename, fileinfo.name);
       //读入图片,存入到frame中
       frame = cv::imread(filename,cv::IMREAD_GRAYSCALE);
       
       //将Mat格式的图片在QLable显示
       QImage Q_input_Img = MattoQImage.Mat2QImage(frame);
       const QSize s_input = ui->label_displayImg->size() ;
       ui->label_displayImg->setPixmap( QPixmap::fromImage( Q_input_Img ).scaled(s_input,Qt::KeepAspectRatio ) );
   }while (!_findnext(handle, &fileinfo));

 4、QT读取本地txt图像数据并在界面上显示该图像

链接:https://blog.youkuaiyun.com/weixin_38621214/article/details/84640268

5、QT将图像数据写入txt文档

链接:https://blog.youkuaiyun.com/weixin_38621214/article/details/84640372

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值