OpenCV图像分块[C++版]
OpenCV图像分块
通过cv::Rect可以从图像中获取感兴趣区域。cv::Rect坐标格式为(x,y,width,height),可以定义一个矩形框,将该矩形框附加到图像上后,可获得矩形框内的图像。
#include <iostream>
#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"
void main()
{
cv::Mat img = cv::imread("./test.jpg");
//img.cols, img.rows 分别为图像列数和行数
//这里均分为左右两部分
cv::Rect leftRect(0, 0, img.cols/2, img.rows);//x,y,width,height
cv::Rect rightRect(img.cols/2, 0, img.cols/2, img.rows);
////与img共用内存
//cv::Mat leftImg(img, leftRect);
//cv::Mat rightImg(img, rightRect);
//与img分别使用不同的内存空间
cv::Mat roiImg;
roiImg = cv::Mat(img, leftRect);
cv::Mat leftImg = roiImg.clone();
roiImg = cv::Mat(img, rightRect);
cv::Mat rightImg = roiImg.clone();
//分别保存图像
cv::imwrite("left.jpg", leftImg);
std::cout << leftImg.cols << " " << leftImg.rows << std::endl;
cv::imwrite("right.jpg", rightImg);
std::cout << rightImg.cols << " " << rightImg.rows << std::endl;
//显示完整的图像
cv::imshow("test.jpg", img);
cv::waitKey();
cv::destroyAllWindows();
}
博客介绍了OpenCV图像分块相关内容,利用cv::Rect可从图像中获取感兴趣区域。cv::Rect坐标格式为(x,y,width,height),定义矩形框并附加到图像上,就能获得框内图像。
380

被折叠的 条评论
为什么被折叠?



