一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

簡述OpenCV中如何提取不規(guī)則ROI區(qū)域

新機器視覺 ? 來源:OpenCV學(xué)堂 ? 作者:OpenCV學(xué)堂 ? 2021-05-28 09:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

什么是ROI

ROI是英文Region Of Interest的三個首字母縮寫,很多時候我們對圖像的分析就是對圖像特定ROI的分析與理解,對細胞與醫(yī)療圖像來說,ROI提取正確才可以進行后續(xù)的分析、測量、計算密度等,而且這些ROI區(qū)域往往不是矩形區(qū)域,一般都是不規(guī)則的多邊形區(qū)域,很多OpenCV初學(xué)者都不知道如何提取這些不規(guī)則的ROI區(qū)域。其實OpenCV中有個非常方便的API函數(shù)可以快速提取各種非正常的ROI區(qū)域。

提取ROI區(qū)域

在做這個之前,首先來了解一下什么圖像處理中的mask(遮罩),OpenCV中是如此定義Mask的:八位單通道的Mat對象,每個像素點值為零或者非零區(qū)域。當(dāng)Mask對象添加到圖像區(qū)上時,只有非零的區(qū)域是可見,Mask中所有像素值為零與圖像重疊的區(qū)域就會不可見,也就是說Mask區(qū)域的形狀與大小直接決定了你看到最終圖像的大小與形狀。一個具體的示例如下:

可以看出,mask的作用是可以 幫助我們提取各種不規(guī)則的區(qū)域。OpenCV中完成上述步驟操作只需要簡單調(diào)用API函數(shù)bitwise_and即可。

于是另外一個問題也隨之而來,我們怎么生成這樣mask區(qū)域,答案是在OpenCV中有兩種方法搞定Mask區(qū)域生成。

方法一:

通過手動選擇,然后通過多邊形填充即可做到,代碼實現(xiàn)如下:

importcv2ascv importnumpyasnp src=cv.imread("D:/images/gc_test.png") cv.imshow("input",src) h,w,c=src.shape #手工繪制ROI區(qū)域 mask=np.zeros((h,w),dtype=np.uint8) x_data=np.array([124,169,208,285,307,260,175]) y_data=np.array([205,124,135,173,216,311,309]) pts=np.vstack((x_data,y_data)).astype(np.int32).T cv.fillPoly(mask,[pts],(255),8,0) cv.imshow("mask",mask) #根據(jù)mask,提取ROI區(qū)域 result=cv.bitwise_and(src,src,mask=mask) cv.imshow("result",result) cv.waitKey(0)

運行效果如下:

方法二:

這個也是OpenCV新手最迷茫的地方,如何通過程序生成mask,其實真的很簡單??创a演示吧!

src=cv.imread("D:/images/gc_test.png") cv.imshow("input",src) #生成mask區(qū)域 hsv=cv.cvtColor(src,cv.COLOR_BGR2HSV) mask=cv.inRange(hsv,(156,43,46),(180,255,255)) cv.imshow("mask",mask) #提取ROI區(qū)域,根據(jù)mask result=cv.bitwise_and(src,src,mask=mask) cv.imshow("result",result) cv.waitKey(0)

效果如下:

主要是分為三步

提取輪廓ROI

生成Mask區(qū)域

提取指定輪廓

特別需要注意的是->其中生成Mask可以根據(jù)輪廓、二值化連通組件分析、inRange等處理方法得到。這里基于inRange方式得到mask區(qū)域,然后提取。

實際應(yīng)用演示

最后看兩個在實際處理會用到mask實現(xiàn)ROI提取然后重新背景融合之后生成新圖像效果:

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1620

    瀏覽量

    64053
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70751
  • OpenCV
    +關(guān)注

    關(guān)注

    32

    文章

    642

    瀏覽量

    42906
  • mask
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    3091

原文標題:OpenCV中如何提取不規(guī)則ROI區(qū)域

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Litestar 4D:運動場所照明

    的Dxf文件 ?手動插入單個燈具或燈具組(例如在高桅桿上) ?定義被檢查運動區(qū)(籃球場、足球場、手球場等)的特征線 ?通過規(guī)則不規(guī)則工作平面定義特殊計算區(qū)域 ?參數(shù)計算: 照度和亮度 眩光 (GR
    發(fā)表于 06-17 08:56

    KiCad 的自定義規(guī)則(KiCon 演講)

    “ ?Seth Hillbrand 在 KiCon US 2025 上為大家介紹了 KiCad 的規(guī)則系統(tǒng),并詳細講解了自定義規(guī)則的設(shè)計與實例。? ” ? 演講主要圍繞 加強 KiCad 的自定義
    的頭像 發(fā)表于 06-16 11:17 ?611次閱讀
    KiCad <b class='flag-5'>中</b>的自定義<b class='flag-5'>規(guī)則</b>(KiCon 演講)

    基于LockAI視覺識別模塊:C++使用圖像的統(tǒng)計信息

    和最大值:幫助識別圖像的極端像素值及其位置。 2.API文檔 2.1 頭文件 #include <opencv2/opencv.hpp> 2.2 提取興趣
    發(fā)表于 05-08 10:31

    基于LockAI視覺識別模塊:C++使用圖像的統(tǒng)計信息

    在圖像處理,統(tǒng)計信息可以幫助我們了解圖像的特性,例如區(qū)域內(nèi)的像素分布、顏色轉(zhuǎn)換以及特定區(qū)域的分析。本文將介紹基于LockAI視覺識別模塊如何提取興趣
    的頭像 發(fā)表于 05-08 10:09 ?235次閱讀
    基于LockAI視覺識別模塊:C++使用圖像的統(tǒng)計信息

    邊緣設(shè)備的奇妙之旅:在小凌派-RK2206上部署AI模型來實現(xiàn)視覺巡線

    ; } // 提取ROI區(qū)域,并轉(zhuǎn)換到HSV色彩空間 cv::Mat roi_image = temp_mat(roi_rect); cv
    發(fā)表于 03-31 10:58

    為LSDK構(gòu)建opencv時遇到的問題求解

    我正在嘗試使用 flex-builder 來運行 bld -c opencv -r ubuntu:桌面 我想要最新版本的 OpenCV。在我的 sdk.yml 文件,我將 opencv
    發(fā)表于 03-26 08:26

    如何在特定區(qū)域設(shè)置線寬、線距規(guī)則

    “ ?今天偷個懶,分享一個 Hayden 大佬提供的自定義規(guī)則,非常實用??梢栽谔囟?b class='flag-5'>區(qū)域(如BGA器件范圍內(nèi))定義特殊的線寬、線距規(guī)則。? ” 就是下面這段自定義規(guī)則,表示 U10
    的頭像 發(fā)表于 03-19 11:20 ?597次閱讀
    如何在特定<b class='flag-5'>區(qū)域</b>設(shè)置線寬、線距<b class='flag-5'>規(guī)則</b>

    芯片設(shè)計的設(shè)計規(guī)則檢查

    設(shè)計規(guī)則檢查(Design Rule Check,簡稱DRC)是芯片設(shè)計的一個關(guān)鍵步驟,旨在確保電路設(shè)計的物理布局符合制造工藝的要求??梢园阉惐葹榻ㄖO(shè)計的檢查流程,確保建筑圖紙
    的頭像 發(fā)表于 03-04 14:58 ?569次閱讀

    DLPR350能否使用ROI功能,投一部分光?

    請問各位大哥,DLPR350能否使用ROI功能,投一部分光。
    發(fā)表于 02-24 07:49

    VirtualLab Fusion:區(qū)域定義

    **摘要** 在VirtualLab Fusion,“區(qū)域”的概念(被理解為在平面上定義的有限區(qū)域,有時也是1D)在整個軟件中用于多個目的:確定IFTA所需的優(yōu)化區(qū)域或Diffrac
    發(fā)表于 01-06 08:56

    ADC3663測電阻兩段電壓,信號在5mV~100mV不規(guī)則波動, 可以測嗎?

    ADC3663是差分輸入,我的測試需求是這樣的,可以使用嗎 1. 電源的電壓信號,比如在1V附近不規(guī)則變化. 那可以INP端接電源,INM接地嗎 2. 測電阻兩段電壓,信號在5mV~100mV不規(guī)則波動, 可以測嗎?
    發(fā)表于 11-22 09:48

    手寫圖像模板匹配算法在OpenCV的實現(xiàn)

    OpenCV的模板匹配是支持基于NCC相似度查找的,但是不是很好用,一個主要的原因是查找最大閾值,只能匹配一個,自己比對閾值,又導(dǎo)致無法正確設(shè)定閾值范圍,所以問題很多。于是我重新寫了純Python版本的NCC圖像模板匹配的代碼實現(xiàn)了一個Python版本的,簡單易用,支持
    的頭像 發(fā)表于 11-11 10:12 ?769次閱讀
    手寫圖像模板匹配算法在<b class='flag-5'>OpenCV</b><b class='flag-5'>中</b>的實現(xiàn)

    如何提取直流信號的交流分量?

    我想將直流功率回路電流的交流分量進行采集并給微機處理,此交流分量在電路正常時候就是功率電源的紋波,當(dāng)電路發(fā)生故障時電路的交流分量會疊加一個200mV左右峰峰值的噪聲信號(無規(guī)律),請問我如何提取直流信號
    發(fā)表于 09-20 07:04

    簡述MOS管的工作區(qū)域

    MOS管(Metal-Oxide-Semiconductor Field-Effect Transistor,金屬-氧化物半導(dǎo)體場效應(yīng)晶體管)是電子電路中廣泛使用的元件,具有三個主要的工作區(qū)域:截止
    的頭像 發(fā)表于 09-14 17:10 ?1w次閱讀

    【龍芯2K0300蜂鳥板試用】5 搭建opencv開發(fā)環(huán)境

    在官方提供的buildroot根文件系統(tǒng),不支持opencv庫,故需要自己增加,另外,在本地編譯的時候,需要在本地(ubuntu)上安裝對應(yīng)opencv庫,這樣才能將編譯好的鏡像放到板子上跑起來
    發(fā)表于 08-27 15:08