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;
}
浙公网安备 33010602011771号