<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

OpenCV初學者如何提取這些不規則的ROI區域

新機器視覺 ? 來源:新機器視覺 ? 2023-10-31 14:51 ? 次閱讀

什么是ROI

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

提取ROI區域

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

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

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

方法一:

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

importcv2ascv
importnumpyasnp

src=cv.imread("D:/images/gc_test.png")
cv.imshow("input",src)
h,w,c=src.shape

#手工繪制ROI區域
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)

#根據mask,提取ROI區域
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區域
hsv=cv.cvtColor(src,cv.COLOR_BGR2HSV)
mask=cv.inRange(hsv,(156,43,46),(180,255,255))
cv.imshow("mask",mask)

#提取ROI區域,根據mask
result=cv.bitwise_and(src,src,mask=mask)
cv.imshow("result",result)
cv.waitKey(0)

主要是分為三步

提取輪廓ROI

生成Mask區域

提取指定輪廓

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

編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 圖像處理
    +關注

    關注

    26

    文章

    1236

    瀏覽量

    56008
  • API
    API
    +關注

    關注

    2

    文章

    1410

    瀏覽量

    61093
  • 函數
    +關注

    關注

    3

    文章

    4114

    瀏覽量

    61426
  • OpenCV
    +關注

    關注

    29

    文章

    612

    瀏覽量

    40851
  • ROI
    ROI
    +關注

    關注

    0

    文章

    13

    瀏覽量

    6189

原文標題:OpenCV中如何提取不規則ROI區域

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

收藏 人收藏

    評論

    相關推薦

    怎么提取彩色圖像ROI區域的RGB值

    怎么提取彩色圖像ROI區域的RGB值
    發表于 08-24 17:58

    如何對不規則ROI區域內進行灰度值分析?

    `請問一下,我想提取一張圖片中一個不規則ROI區域,并對ROI內部的灰度值進行分析,但是一定不能用RO
    發表于 10-29 13:49

    初學者之路—硬件學習經驗

    初學者之路—硬件學習經驗一文是一位搞硬件的在校研究生寫的,希望對那些初學者之路電腦網等處于迷茫的硬件初學者學習之路有所幫助!
    發表于 12-29 10:20 ?1.4w次閱讀

    編程及C C++初學者+FAQ

    編程及C C++初學者+FAQ
    發表于 09-06 14:55 ?80次下載

    電子初學者電路圖如何看

    電子初學者的指南,介紹了好些東西,都是最基礎的。適合于初學者
    發表于 11-23 12:05 ?0次下載

    從51初學者到電子工程師

    51初學者的學習指導,對51初學者是個很好的入門教程,
    發表于 02-23 15:53 ?0次下載

    初學者如何看電路圖

    初學者如何看電路圖,拆解電路分步講解!
    發表于 04-19 10:37 ?69次下載

    初學者的avr基礎教程

    初學者的avr基礎教程
    發表于 09-21 08:45 ?14次下載

    初學者邊用邊學C語言

    初學者邊用邊學C語言
    發表于 09-22 10:14 ?17次下載
    <b class='flag-5'>初學者</b>邊用邊學C語言

    PSOC1初學者5個實驗,針對初學者的實驗

    PSOC1初學者5個實驗,針對初學者的實驗
    發表于 10-16 09:33 ?14次下載
    PSOC1<b class='flag-5'>初學者</b>5個實驗,針對<b class='flag-5'>初學者</b>的實驗

    linux初學者入門

    linux初學者入門
    發表于 10-27 14:34 ?14次下載
    linux<b class='flag-5'>初學者</b>入門

    R語言初學者指南 pdf下載

    R初學者指南
    發表于 02-26 09:35 ?13次下載

    簡述OpenCV中如何提取不規則ROI區域

    、測量、計算密度等,而且這些ROI區域往往不是矩形區域,一般都是不規則的多邊形區域,很多
    的頭像 發表于 05-28 09:16 ?2145次閱讀

    FPGA初學者必讀文檔

    FPGA初學者必讀文檔(嵌入式開發適合哪個城市)-FPGA初學者必讀文檔,為學習FPGA做好準備。
    發表于 08-04 11:39 ?32次下載
    FPGA<b class='flag-5'>初學者</b>必讀文檔

    初學者的基本LED設置

    電子發燒友網站提供《初學者的基本LED設置.zip》資料免費下載
    發表于 11-22 10:14 ?3次下載
    <b class='flag-5'>初學者</b>的基本LED設置
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>