【OpenCV3】將圖像指定區域使用另一圖像(或ROI)覆蓋

在圖像處理中,有時會遇到使用使用一幅圖像(或ROI)覆蓋(替換)另一圖像的指定區域,直接的方法是逐個像素進行復制,但這是一種效率很低的操作,下面介紹opencv中一種效率較高且簡便的操作。

具體看如下代碼:

	//設置深藍色背景畫布
	cv::Mat image = cv::Mat::zeros(512, 512, CV_8UC3);
	image.setTo(cv::Scalar(100, 0, 0));
	cv::imshow("original", image);
	
	//讀取待複製圖片
	cv::Mat roi = cv::imread("E:\\Images\\Hepburn.png", cv::IMREAD_COLOR);
	cv::imshow("roi", roi);

	//設置畫布繪製區域並複製
	cv::Rect roi_rect = cv::Rect(128, 128, roi.cols, roi.rows);
	roi.copyTo(image(roi_rect));

	cv::imshow("result", image);

	cv::waitKey(0);

	return;

處理結果如下:

背景圖像



ROI圖像



覆蓋後的圖像



2017.06.02

發佈了78 篇原創文章 · 獲贊 369 · 訪問量 126萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章