1. 程式人生 > >如何設定感興趣的區域ROI

如何設定感興趣的區域ROI

一、定義:ROI區域有兩種演算法,第一種是表示矩形區域的Rect區域,它指定矩形的左上角座標和矩形的長和寬;另一個函式是Range,它是從起始索引到終止索引(不包括終止索引)的一段連續區域,我感覺就是矩形行數的範圍和獵術範圍疊加起來而形成的一個矩陣,從而定義一個矩形區域。

方法一:
Rect函式:
rect(x -> cols, y -> rows, width -> cols, height -> rows)
Mat image,logo,imageROI;
imageROI=image(Rect(20,30,logo.clos,logo.rows));
方法二:
Range函式:Mat image,logo,imageROI;
imageROI=image(range(20,20+logo.rows),range(30,30+logo.clos));

順便講一下addWeighted()函式,因為下面的程式要用到的:

void(InputArray src1,double alpha,InputArray src2,double beta,double gamma,OutputArray dst,int dtype)
第一個引數是輸入一個矩陣圖1,第二個引數是矩陣圖1 的權值;
第三個引數是輸入一個矩陣圖2,第四個引數是矩陣圖2 的權值;
第五個引數是加權到權重總和上的標量;
第六個引數是輸出矩陣圖;
第八個引數是輸出陣列的深度,當兩個輸入矩陣圖具有相同的深度時,等於-1;

後面我會針對此函式專寫一個程式。

二、整合在一起的完整程式碼

#include <opencv2/opencv.hpp>
//#include <opencv2/core/core.hpp>
//#include <opencv2/highgui/highgui.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
	Mat srcImage = imread("D:\\vvoo\\32.jpg");
	Mat logaImage = imread("D:\\vvoo\\shark.jpg");
	//此為Rect函式
	//Mat imageROI = srcImage(Rect(400, 200, logaImage.cols, logaImage.rows));
	//此為Range函式
	Mat imageROI = srcImage(Range(200,200 + logaImage.rows),Range(600, 600 + logaImage.cols));
	addWeighted(imageROI, 0.3, logaImage, 1, 0.,imageROI);
	imshow("區域線性混合", srcImage);
	while (char(waitKey(1))!= 'q') //退出程式
	{

	}
	waitKey(0);
	return true;
}

三、執行結果


兩幅圖片疊加上去時,其透明度是可以改變的,用addWeighted()的權值引數修改即可。

四、在實際專案中,很多情況是尋找不規則形狀,那麼上面的兩個函式就有侷限性了,對此來介紹畫多邊形函式ploylines()與填充函式fillPoly()。2017.06.07(改)

C++: void polylines(Mat& img,
 const Point** pts, const int* npts, int ncontours, bool isClosed, 
const Scalar& color, int thickness=1, int lineType=8, int shift=0 )
C++: void polylines(InputOutputArray img, InputArrayOfArrays pts,
 bool isClosed, const Scalar& color, int thickness=1, int lineType=8, int shift=0 )
Parameters:	
img – 折線所在影象.
pts – 折線中拐點座標指標.
npts – 折線拐點個數指標.
ncontours – 折線線段數量.
isClosed – 折線是否閉合.
color – 折線顏色.
thickness – 折線寬度.
lineType – 線型.
shift – 頂點座標小數點位數.

對於建立固定顯示視窗:

cvNamedWindow("enhanced",0);
cvResizeWindow("enhanced",640,480);
cv::imshow("enhanced",betterI)

建立視窗時候改變下引數就可以滑鼠隨意拖動視窗改變大小啦~

cv::namedWindow("camera", CV_WINDOW_NORMAL); cv::imshow("camera", frame);

#include "stdafx.h"
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
    Mat img = imread("D://vvoo//lena.jpg");
	namedWindow("roiImg",0);  
	cvResizeWindow("roiImg",95,55); 
    Point root_points[1][4];  
    root_points[0][0] = Point(5,5);  
    root_points[0][1] = Point(30,100);  
    root_points[0][2] = Point(60,100);  
    root_points[0][3] = Point(35,5);

    const Point* ppt[1] = {root_points[0]};  
    int npt[] = {4};  
    polylines(img, ppt, npt, 1, 1, Scalar(255),1,8,0);   fillPoly(img, ppt, npt, 1, Scalar(255,255,0));

	Rect roi=Rect(Point(5,5), Point(60,100));
	Mat roiImg=img(roi);cout<<roiImg.cols<<endl<<roiImg.rows<<endl;
	imshow("roiImg",roiImg);
    imshow("Test", img);  
    waitKey();  
    return 0;
}
但是我不會弄顯示的視窗和畫的roi等大。


相關推薦

OpenCV設定興趣區域ROI,對影象進行區域性處理

今天終於將霍夫檢測的原始碼用C++寫出來了,八天時間遇到最多的問題還是資料結構不熟悉,有些問題不知道怎麼問,不知道從何下手 寫出來的檢測直線基本符合要求,問題是如果在現實中檢測鐵軌的話,附近會有石子,

設定影象的興趣區域(ROI)

新函式用紅色顯示,程式為:#include <highgui.h>#include <cv.h>#include <iostream.h>void main(){IplImage * src=cvLoadImage("baboon.jpg"

【opencv入門之二】興趣區域ROI,線性混合addWeighted

bsp enc 擁有 ted 興趣 通道數 amp log 兩個 參考網站: http://blog.csdn.net/poem_qianmo/article/details/20911629 1、感興趣區域ROI   //【2】定義一個Mat類型並給其設定ROI區

OpenCV:興趣區域ROI相關函式操作

1. 之前版本函式 void cvSetImageROI(IplImage* image, CvRect rect)//設定ROI區域,只顯示ROI區域 void cvResetImageROI(IplImage* image);//復位ROI區域,重置,釋放ROI區域 CvRect c

《OpenCV3程式設計入門》——5.2.1 興趣區域ROI

定義ROI區域有兩種方法: 第一種:使用表示矩形區域的Rect。指定矩形的左上角座標(建構函式的前兩個引數)和矩形的長寬(建構函式的後兩個引數)。 imageROI = image(Rect(500, 250, logo.cols, logo.rows)); 第二種:指定感興

影象興趣區域ROI獲取的正確方式

簡要:獲取感興趣區域影象,能儲存得到正確的影象(cv::Mat)。 但轉換成後續所需要的介面資料型別(const void* const)之後,處理結果錯誤。 提醒大家,獲取感興趣區域影象的方式要注意!!! 做影象處理時,以自己開展的具體專案中的處理為例,得到原圖感興趣區域的cv::Rect區域之後,需要

如何設定興趣區域ROI

一、定義:ROI區域有兩種演算法,第一種是表示矩形區域的Rect區域,它指定矩形的左上角座標和矩形的長和寬;另一個函式是Range,它是從起始索引到終止索引(不包括終止索引)的一段連續區域,我感覺就是矩形行數的範圍和獵術範圍疊加起來而形成的一個矩陣,從而定義一個矩形區域。

OpenCV入門:ROI興趣區域(滑鼠事件選定區域

OpenCV入門:ROI感興趣區域(滑鼠事件選定區域) 部落格 http://blog.csdn.net/qq_23968185/article/details/51335291 #include <iostream> #include "opencv2/core/core.h

OpenCV入門:ROI興趣區域(已知ROI區域範圍)

ROI感興趣區域 最簡單的ROI使用(已知ROI的區域範圍) #include<iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp>

關於興趣區域和掩膜的問題!

本文章主要對感興趣區域ROI的操作(對於ROI區域影象疊加)說明 在影象處理的領域,我們常常需要去設定自己感興趣的區域(ROI,region of interest),來專注或者簡化工作過程。也就是從影象中選擇的一個影象區域,這個

opencv中興趣區域以及mask的使用

在影象處理的過程中,我們時常需要對指定區域或目標進行操作,這個區域我們稱之為感興趣區域。在學習opencv的初級階段,對於感興趣區域的操作方法是必須要掌握的。 Mat image,mask;   Rect r1(100,100,50,100);   Mat img1,img

Opencv興趣區域複製,畫點,畫線方法總結

今天做的東西用到了Opencv的幾個功能,下面對他們依次進行總結。 (1)Opencv對感興趣區域的複製 具體是這樣的,我想把兩張影象進行拼接成一幅影象,很容易想象到的方法就是先建立一幅大的影象(高度為兩張原圖高度的較大者,寬度為兩張原圖寬度之和),然後把兩張影象內容分別複

裁剪影象中興趣區域python

目的是接上篇生成的高斯分佈,3*delta範圍內包含99+%的資訊,那麼3*delta外的區域置零,只保留半徑為3*delta的區域。 import numpy as np import matplotlib.pyplot as plt #im

Python 影象處理 OpenCV (3):影象屬性、影象興趣 ROI 區域及通道處理

![](https://cdn.geekdigging.com/opencv/opencv_header.png) 前文傳送門: [「Python 影象處理 OpenCV (1):入門」](https://www.geekdigging.com/2020/05/17/5513454552/) [「Pyt

文字包含圖片路徑 及roi興趣 提取 對圖片分類

//文件類似於上述圖片截圖  第一行為圖片路徑 ,接下來四個為感興趣區域的左上角和右下角座標 ,然後是影象類別。接下來四個又是座標,然後又是類別 #include "stdafx.h" #include <stdio.h> #include <string.h&

Nginx的知識分享,興趣的可以看一下

local 很大的 支持 回車 mail fig 查看 傳統 它的 我幹了五年了,我想把我的經驗跟大家分享一下,歡迎大家閱讀。   1. Nginx入門簡介   WEB服務器也稱為WWW(WORLD WIDE WEB)服務器,主要功能是提供網上信息瀏覽服務。 WWW 是 I

檢測車道線——2.選擇興趣區域 Region Masking

出現 plot note nes gpo bsp AR nbsp upper   通過簡單的顏色選擇,我們設法消除了圖像中除了車道線以外的幾乎所有內容。但是,在這一點上,自動提取確切的線條仍然非常棘手,因為我們仍然在周邊檢測到了一些不是線條線的其他物體。   在這種情況下,

第一章 為什麽我們對機器學習興趣?(六)

銷售 學習 智能算法 實體 對象 計算 互聯 行為模式 生活 註:本書屬作者免費翻譯,如有版權問題,請聯系我刪除。如有轉載,請註明出處。 六、所有這些數據:數據地震 所有電腦化機器和服務所產生的數據曾經都是數字化技術的副產品,計算機科學家已經對數據庫進行了大量研究以

Windows server 2008讓我最興趣的特性 Hyper-V

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

大家好,我的原始碼一般在Github網站開源,如果興趣可以關注我的CSDN和Github

1、https://github.com/XiaoGongWei/PPP 這是用來事後處理衛星資料進行”精密單點定位“(PPP)的程式。如果你感興趣也可以加入我們。 QQ Group: 258113285 Email: [email protected] QQ: 2707343