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

2021-07-16 02:16:09 字數 1026 閱讀 3380

今天做的東西用到了opencv的幾個功能,下面對他們依次進行總結。

具體是這樣的,我想把兩張影象進行拼接成一幅影象,很容易想象到的方法就是先建立一幅大的影象(高度為兩張原圖高度的較大者,寬度為兩張原圖寬度之和),然後把兩張影象內容分別複製到這張大圖的對應區域即可。

很容易想到用opencv的roi方法。

網上很多的總結方法都是用opencv的c風格的**,用的是iplimage,但是我用的是c++風格的,**並不相容,查了一段時間找到了解決方案,具體**如下:

void siftfeature::imagejoin(cv::mat &src1, cv::mat &src2, cv::mat &dest)

這是我做的東西的其中乙個函式,很顯然,src1和src2是原圖,dest是拼接好的大圖。

首先選擇乙個感興趣的矩形區域,然後選中目的影象的該部分區域,使用原圖的converto方法進行轉換。

**很簡單,這裡只做乙個備份,估計下次還會忘。。。

結果如下:

這裡的黃線是我做的sift特徵匹配的結果,與影象拼接無關。

不多說,直接上**,其實畫的是小圓圈

cv::point pointinterest;//特徵點,用以畫在影象中

pointinterest.x = keys[i][k].x;//特徵點在影象中橫座標

pointinterest.y = keys[i][k].y;//特徵點在影象中縱座標

cv::circle(image, pointinterest, 2, cv::scalar(0, 0, 255));//在影象中畫出特徵點,2是圓的半徑

cv::point start = cv::point(x1, y1);

cv::point end = cv::point(x2, y2);

cv::line(image, start, end, cv::scalar(0, 255, 255));

感興趣區域ROI

roi在目前的理解看來就是擷取影象的一部分進行想要的操作,比如要在一張圖的任意地方嵌入另一張圖,首先要做的事就是把要嵌入的所覆蓋的這塊地方圈出來,然後把要嵌入的放到這個框框裡就行了 建立roi的兩種方法 1 imgroi image rect x,y,width,height 直接指定一塊矩形,選出...

opencv學習之感興趣區域(ROI)

新手學習就是苦啊,好多東西都要一點點的摸索,之前的經驗太少,積累太少,許多問題太簡單了,問別人都不好開口,誰讓自己太low了啊!那就自己折騰唄 今天看了opencv的矩陣和影象操作部分內容,這裡把這折騰的過程弄上來了 書上給了兩種獲得感興趣矩形區域的方式 乙個是直接用函式 cvsetimageroi...

opencv 學習之感興趣區域(ROI)

兩種獲得感興趣矩形區域的方式 乙個是直接用函式 cvsetimageroi iplimage image,cvrect rect 其中image是載入的一幅影象,rect cvrect x,y,width,height x,y給出了矩形在原影象中的起點 從左上起 width,height給出了矩形的...