1. 程式人生 > >Opencv感興趣區域複製,畫點,畫線方法總結

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

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

(1)Opencv對感興趣區域的複製

具體是這樣的,我想把兩張影象進行拼接成一幅影象,很容易想象到的方法就是先建立一幅大的影象(高度為兩張原圖高度的較大者,寬度為兩張原圖寬度之和),然後把兩張影象內容分別複製到這張大圖的對應區域即可。 很容易想到用Opencv的ROI方法。 網上很多的總結方法都是用Opencv的C風格的程式碼,用的是IplImage,但是我用的是C++風格的,程式碼並不相容,查了一段時間找到了解決方案,具體程式碼如下:
void SIFTFeature::imageJoin(cv::Mat &src1, cv::Mat &src2, cv::Mat &dest)
{
	cv::Rect roi1 = cv::Rect(0, 0, src1.cols, src1.rows);
	cv::Mat matchImage1 = dest(roi1);
	src1.convertTo(matchImage1, matchImage1.type());
	cv::Rect roi2 = cv::Rect(src1.cols, 0, src2.cols, src2.rows);
	cv::Mat matchImage2 = dest(roi2);
	src2.convertTo(matchImage2, matchImage2.type());
}
這是我做的東西的其中一個函式,很顯然,src1和src2是原圖,dest是拼接好的大圖。 首先選擇一個感興趣的矩形區域,然後選中目的影象的該部分割槽域,使用原圖的converTo方法進行轉換。 程式碼很簡單,這裡只做一個備份,估計下次還會忘。。。 結果如下: 這裡的黃線是我做的SIFT特徵匹配的結果,與影象拼接無關。

(2)Opencv畫點

不多說,直接上程式碼,其實畫的是小圓圈
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是圓的半徑

(3)Opencv畫線

cv::Point start = cv::Point(x1, y1);
cv::Point end = cv::Point(x2, y2);
cv::line(image, start, end, cv::Scalar(0, 255, 255));


相關推薦

Opencv興趣區域複製方法總結

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

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

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

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

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

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

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

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>

opencv興趣區域以及mask的使用

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

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

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

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

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

【Java 攻城獅~~】一名Java攻城獅喜歡研究相關的技術對計算機的任何方面都感興趣。真正的全棧裝系統搭伺服器搭分散式搭叢集操作資料庫搭框架設計寫後端寫前端單元測試整合測試聯調優化部署

一名Java攻城獅,喜歡研究相關的技術,對計算機的任何方面都感興趣。真正的全棧,裝系統,搭伺服器,搭分散式,搭叢集,操作資料庫,搭框架,設計,寫後端,寫前端,單元測試,整合測試,聯調,優化,部署...

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

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

利用opencv逼近二值影象的邊界並過濾不需要的邊界達到尋邊效果。(轉載請說明出處)

二值化影象; 利用黑白畫素值求差,得到邊緣點; 過濾邊緣點找到合適區域; 利用cvFitLine2D擬合線。 做的比較粗糙,搜尋時間在10ms左右,希望有研究opencv的朋友斧正。 效果預覽: 、 void CvProcess::FindLine( Ip

QT QPainter用法(包含矩形等)

       QPainter可以繪製從簡單的直線到像餅圖和絃這樣的複雜形狀。它也可以繪製排列的文字和畫素對映。通常,它在一個“自然的”座標系統中繪製,但是它也可以在視和世界轉換中做到這些。繪圖工具的典型用法是:構造一個繪圖工具。設定畫筆、畫刷等等。繪製。銷燬這個繪圖工具。下

裁剪影象中興趣區域python

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

利用QT中Qpainter直線弧線等簡單圖形

轉自: http://blog.sina.com.cn/s/blog_67cf08270100wv59.html MyImgTest.h: #ifndef MYIMGTEST_H #define MYIMGTEST_H   #include <QWidget

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

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

[HDOJ6165] FFF at Valentine(強聯通分量拓撲排序)

har 之間 i++ name head cnblogs span fire -- 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=6165 題意:問一個有向圖中是否有任意兩點可以到達。 讀錯題就徹底輸了,讀成判斷是否有任意條路

洛谷P3348 [ZJOI2016]大森林(LCT樹上差分)

cst log 函數 默認 位置 想法 差分 truct AC 洛谷題目傳送門 思路分析 最簡單粗暴的想法,肯定是大力LCT,每個樹都來一遍link之類的操作啦(T飛就不說了) 考慮如何優化算法。如果沒有1操作,肯定每個樹都長一樣。有了1操作,就來仔細分析一下對不同樹的影響

Tarjan相關(強連通分量

一、先上模板QWQ #include<bits/stdc++.h>//tarjan-強連通分量 using namespace std; const int MAXM=100005; const int MAXN=5005; int n,m,tot,head[MAXN],dfn[MAXN],l

集合閉包區別離散數學中的關係R閉包

聚點是拓撲空間的基本概念之一。設A為拓撲空間X的子集,a∈X,若a的任意鄰域都含有異於a的A中的點,則稱a是A的聚點。集合A的所有聚點的集合稱為A的導集,聚點和導集等概念是康托爾(Cantor,G.(F.P.))研究歐幾里得空間的子集時首先提出的。 閉包   閉包運算時關係上的一元運算。