異形ROI的建立與使用
在OpenCV中,ROI (Region of Interest)是非常重要的機制,它可以縮小影象處理的區域,使得程式的效能明顯提升。如,在1920x720的灰度圖中,模板匹配1個大小為50x50的灰度圖,1G主頻下的執行時間約為1s,但如果提前標定好對應的匹配位置,可以將時間縮短到1-3ms,效能提升極為可觀。
OpenCV中的ROI設定有幾種方式:
- 使用矩形子影象作為ROI,如:
Mat _sub = Mat( _img, Rect(x, y, w, h) );
這個_sub是從 _img中取出的子影象,共享 _img的記憶體,效果如同將下圖中白色區域作為輸入影象進行處理:
- 使用Mask引數標識ROI
void cv::matchTemplate ( InputArray image, InputArray templ, OutputArray result, int method, InputArray mask = noArray() )
OpenCV的一些方法中,並不支援Mask操作,如識別直線的HoughLinesP。而矩形區域相對特定的處理情況下,仍有可能個別被測目標,沿特定軌跡運動,而對應的矩形區域內的干擾較多,導致識別困難,因此引出本文的重點:如何設計一些特殊形狀的Mask,及如何在不支援Mask的OpenCV介面中使用
根據需要建立所需的異形Mask並不難,如下2個影象的Mask,分別採用fillConvexPoly及ellipse即可完成,
在不支援Mask的方法中,使用這樣的Mask則需要使用Mat的Bit And操作符:&。舉個例子如下:
/* _mask after fillConvexPoly or ellipse operation */
HoughLinesP( Mat(_img, _rect) & _mask, lines, 3, CV_PI/60, 30, 30, 5 );
例子中使用的Rectangle形式的ROI再Bit And上生成的異形ROI,提升了效能,減少了干擾,過程就是這麼簡單。
相關推薦
異形ROI的建立與使用
在OpenCV中,ROI (Region of Interest)是非常重要的機制,它可以縮小影象處理的區域,使得程式的效能明顯提升。如,在1920x720的灰度圖中,模板匹配1個大小為50x50的灰度圖,1G主頻下的執行時間約為1s,但如果提前標定好對應的匹配
altium designer建立異形的焊盤的方法圖文教程
一般不規則的焊盤被稱為異型焊盤,典型的有金手指、大型的器件焊盤或者板子上需要新增特殊形狀的銅箔(可以製作一個特殊封裝代替)。如圖27所示,此處我們以一個鍋仔片為例進行說明。 圖27 完整的鍋仔片封裝 1、執行選單命令“Place—Arc(Any Angle)”,放置
異形與鐵血戰士關係 時間線
Alien and Predator Relationship & Timeline 異形VS鐵血戰士編年史 時間線 有人說鐵血戰士和異形是本來沒有半毛錢關係,是被導演們生拉硬拽在一起的。其實,異形和鐵血戰士是天生的一對兒。今天,就給大家講解異形VS鐵血戰士故事的大背景吧,讓你徹底搞懂整個劇情
AltiumDesigner中建立異形焊盤方法
關於異形焊盤的建立,可參照下面的半圓PAD的製作: 1.新建一個PCB檔案,然後在裡面畫一個半圓的Arc,即Place》Arc,並且要將其開口處封閉,即可用Place》Line封閉 2.選中整個半圓區域,而後執行Tools》Convert》Create Region f
WPF中的柱形圖的建立與使用
最近,由於專案的需要,做了一個關於WPF中柱形統計圖的Demo,現在拿出來跟大家分享一下。 關於這個Demo,我想先說一點體外話。由於WPF中關於WPF的柱形圖第三方控制元件非常的匱乏,所以為了尋找到一個合適的控制元件,也是花了我很大的力氣。不過,怎麼說功夫不負有心人,終於
河南省第六屆大學生程序設計競賽--異形卵
con -s pad space 傳感器 math.h 水題 amp 歷史 異 形 卵 Time Limit: 1 Second Memory Limit: 64 MB Description 我們探索宇宙,是想了解浩瀚星空的奧妙,但我們卻非常少意識到宇宙
如何在VMware系統中的ubuntu16.04中建立與win7系統的共享文件夾
alt hgfs vmware 結果 vmw 設置 too 得到 image 點擊虛擬機設置一次得到如圖所示 系統默認放在了 /mnt/hgfs文件夾 點擊虛擬機安裝vmware tools 解壓vmware tools壓縮包 運行sudo ./vmwar
VS2010屬性表的建立與靈活運用
如何 新項目 簡化 百度 經驗 table .html 減少 eas 問題引入:在VS2010當中,進行opencv、QT等的編程時,總是需要配置很多屬性還有依賴項等,為了減少每次都重復配置屬性的工作量,現在可以運行屬性表這個東西來簡化配置。opencv也可以這樣建立使
同步與異步、阻塞與非阻塞
阻塞與非阻塞 就會 結束 檢查 通信機制 得到 node 分布 好書 “阻塞”與"非阻塞"與"同步"與“異步"不能簡單的從字面理解,提供一個從分布式系統角度的回答。1.同步與異步同步和異步關註的是消息通信機制 (synchronous communication/ a
WebSocket安卓客戶端實現詳解(一)–連接建立與重連
ask 應該 header oid mha 主動推送 未收到 compile tde http://blog.csdn.net/zly921112/article/details/72973054 前言 這裏特別說明下因為WebSocket服務端是公司線上項目所以這裏ur
Python --- 二叉樹的層序建立與三種遍歷
隊列 方式 span 等於 不存在 pos 同時 紅色 ret 二叉樹(Binary Tree)時數據結構中一個非常重要的結構,其具有。。。。(此處省略好多字)。。。。等的優良特點。 之前在刷LeetCode的時候把有關樹的題目全部跳過了,(ORZ:我這種連數據結構都不會的
線程和異步的分別與聯系
調用方法 同步 同步等待 這一 調用 實現 代碼 做自己 我們 多線程:多線程是程序設計的邏輯層概念,它是進程中並發運行的一段代碼。多線程可以實現線程間的切換執行。 異步:異步和同步是相對的,同步就是順序執行,執行完一個再執行下一個,需要等待、協調運行。異步就是彼此獨立,在
【技術文檔】使用ADOMD.NET建立與Analysis Services的連接
urn local 環境 .aspx pro lar 進行 ref 包含 C#操作Analysis Services,AMO是Analysis Services的管理類的完整集合,可在托管環境中,在Microsoft.AnalysisServices命名空間下以編程方式使用
同步與異步,阻塞與非阻塞
消息 阻塞 結果 阻塞與非阻塞 過程調用 函數 異步 非阻塞 完成 異步的概念和同步相對。當一個同步調用發出後,調用者要一直等待返回消息(結果)通知後,才能進行後續的執行;當一個異步過程調用發出後,調用者不能立刻得到返回消息(結果)。實際處理這個調用的部件在完成後,通過狀態
[TCP/IP] TCP建立與終止
自己的 str color 了解 span 出現 數據包 傳輸層 它的 三次握手與四次揮手 TCP提供一種可靠、面向連接、字節流、傳輸層的服務。TCP是一種面向連接的單播協議。 一個TCP連接由一個4元組構成,它們分別是源IP地址和源端口號,目的IP地址和目的端口
TCP詳解——連接建立與斷開
介紹 32bit 標誌位 關閉連接 選擇 tro 窗口大小 syn 重新發送 一、報文結構介紹 在開始講TCP連接過程時,還是先看看TCP報文的格式如圖1所示。IP數據報此時由IP頭部+TCP頭部+TCP數據組成。不帶選項的TCP頭部是20字節長,而帶選項的,TCP頭部
【轉】異步傳輸模式與同步傳輸模式的區別
傳輸 不返回 面向 等待 機會 間隔 統一 其他 就是 說到異步傳輸模式與同步傳輸模式的區別,首先簡單首先他們各自的意思。 同步傳輸模式中發送方和接收方的時鐘是統一的、字符與字符間的傳輸是同步無間隔的。 異步傳輸模式並不要
【intellij】intellij idea 建立與src級別的目錄
dir itl 發現 建立 img r文件 你是 .net .... 在使用三大框架時,通常會把配置文件放在自己新建的config文件夾裏,以便編程。在 myeclipse裏新建的config文件夾是Source Folder屬性的 這樣他的級別適合src一個級別,但是
轉:聊聊同步、異步、阻塞與非阻塞
AI strong 什麽 商業 同步與異步 好的 等待 不難 兩個 轉載:https://www.jianshu.com/p/aed6067eeac9 近來遇到了一些常見的概念,尤其是網絡編程方面的概念,如:阻塞、非阻塞、異步I/O等等,對於這些概念自己也沒有太清晰的認
建立與終止服務器鏈接
鏈接mysql及退出mysql安裝好mysql數據庫之後,如果您是windows系統,您可以通過dos控制臺鏈接mysql.首先進入dos控制臺,開始菜單輸入"cmd",回車;即進入dos命令行窗口。接著,通過"cd"命令切換到安裝mysql的路徑,類如“D:\>