学习OpenCV(四)

来源:互联网 发布:linux系统教程 编辑:程序博客网 时间:2024/05/29 03:35
/**功能:图像叠加操作**/#include "highgui.h"int main(){cv::Mat image1 , image2 ;cv::Mat result ;image1 = cv::imread("D:/Development/OpenCV/images/boldt.jpg") ;image2 = cv::imread("D:/Development/OpenCV/images/rain.jpg") ;//图像叠加的几种方法cv::addWeighted(image1 , 0.9 , image2 , 0.7 , 0. , result) ;//cv::add(image1 , image2 , result) ;//cv::add(image1 , cv::Scalar(2) , result) ;//cv::scaleAdd(image1 , 0.9 , image2 , result) ;// if (mask[i]) c[i]= a[i]+b[i];//cv::add(image1 , image2 , result , mask );//可以使用操作符重载//result = 0.9 * image1 + 0.7 * image2 ;//还有其他的加减乘除,位运算,数学运算可以使用//cv::subtract(image1 , image2 , result) ; //result.inv() ;//result.t() ;cv::namedWindow("Result") ;cv::imshow("Result" , result) ;cv::waitKey() ;return 0 ;}



/**功能:按颜色平面分解图像,整合图像*/#include "highgui.h"int main(){cv::Mat image1 , image2 ;cv::Mat result ;image1 = cv::imread("D:/Development/OpenCV/images/boldt.jpg") ;image2 = cv::imread("D:/Development/OpenCV/images/rain.jpg" , 0) ;std::vector<cv::Mat> planes ;cv::split(image1 , planes) ;planes[0] += image2 ;cv::merge(planes , result) ;cv::namedWindow("Result") ;cv::imshow("Result" , result) ;cv::waitKey() ;return 0 ;}


/**功能:定义图像的ROI区域**/#include "highgui.h"int main(){cv::Mat image1 , logo ;cv::Mat result ;image1 = cv::imread("D:/Development/OpenCV/images/boldt.jpg") ;logo   = cv::imread("D:/Development/OpenCV/images/logo.bmp") ;//定义ROI的几种方法//cv::Mat ROI = image1(cv::Rect(385 , 270 , logo.cols , logo.rows)) ;cv::Mat ROI = image1( cv::Range(270 , 270 + logo.rows) ,                   cv::Range(385 , 385 + logo.cols)) ;//在ROI区域添加图像的几种方法//cv::addWeighted(ROI , 1.0 , logo , 0.3 , 0. , ROI) ;cv::Mat mask = cv::imread("D:/Development/OpenCV/images/logo.bmp" , 0) ;logo.copyTo(ROI , mask) ;//仅当此处为1时才拷贝cv::namedWindow("Result") ;cv::imshow("Result" , image1) ;//得到一个图像的几行或几列cv::Mat rowCols ;//rowCols = image1.rowRange(0 , 100) ;rowCols = image1.colRange(0 , 100) ;cv::namedWindow("rowCols") ;cv::imshow("rowCols" , rowCols) ;cv::waitKey() ;return 0 ;}

0 0
原创粉丝点击