OpenCV裁剪指定区域并进行灰度化

一、概述

  案例:裁剪一个图片的指定区域,并发裁剪后的ROI区域进行灰度化。

 

二、内容

     //1.输出原图(imshow中的显示文件名最好不要用中文,否则有可能会出现异常,如图片不显示,标题不显示等问题)
        Mat src = imread(path.toStdString());//从磁盘中加载一张图片
        imshow("src",src);
        //2.定义ROI(裁剪图片最中间的部分)
        int width = src.cols;//获取图片的宽度
        int height = src.rows;//获取图片的高度
        //截取图片最中间的部分
        Rect rect = Rect(width/4,height/4,width/2,height/2);
        Mat copySrc;
        src.copyTo(copySrc);
        Mat roi = copySrc(rect);//从原图中截取最中间的部分放入Mat roi中
        src.release();
        copySrc.release();
        //3.输出ROI区域的内容
        imshow("roi",roi);
        //4.将ROI区域转换为灰度图
        Mat roiGray ;
        cvtColor(roi,roiGray,COLOR_BGR2GRAY);
        imshow("roi gray Image",roiGray);
        if(!roiGray.empty()){
           roiGray.release();
           roiGray = 0;
        }

  

posted on 2023-07-13 14:51  飘杨......  阅读(160)  评论(0)    收藏  举报