基於OpenCV的區域分割、輪廓檢測和閾值處理

2020-12-08 騰訊網

重磅乾貨,第一時間送達

OpenCV是一個巨大的開源庫,廣泛用於計算機視覺,人工智慧和圖像處理領域。它在現實世界中的典型應用是人臉識別,物體檢測,人類活動識別,物體跟蹤等。

現在,假設我們只需要從整個輸入幀中檢測到一個對象。因此,代替處理整個框架,如果可以在框架中定義一個子區域並將其視為要應用處理的新框架,該怎麼辦。我們要完成一下三個步驟:

定義興趣區

在ROI中檢測輪廓

閾值檢測輪廓輪廓線

什麼是ROI?

簡而言之,我們感興趣的對象所在的幀內的子區域稱為感興趣區域(ROI)。

我們如何定義ROI?

在輸入幀中定義ROI的過程稱為ROI分割。

在「 ROI細分」中,(此處)我們選擇框架中的特定區域,並以矩形方法提供其尺寸,以便它將在框架上繪製矩形的ROI。

(輸出)藍色矩形覆蓋的區域是我們的投資回報率

現在,如果您也想綁定感興趣的對象,那麼我們可以通過在ROI中找到輪廓來實現。

什麼是輪廓?

輪廓線是 表示或說是限制對象形狀的輪廓。

如何在框架中找到輪廓?

對我而言,在將ROI框架設為閾值後,找到輪廓效果最佳。因此,要找到輪廓,手上的問題是-

什麼是閾值?

閾值不過是圖像分割的一種簡單形式。這是將灰度或rgb圖像轉換為二進位圖像的過程。例如

(這是RGB幀)

(這是二進位閾值幀)

因此,在對rgb幀進行閾值處理後,程序很容易找到輪廓,因為由於ROI中感興趣對象的顏色將是黑色(在簡單的二進位脫粒中)或白色(在如上所述的反向二進位脫粒中),因此分割(將背景與前景即我們的對象分開)將很容易完成。

在對框架進行閾值處理並檢測到輪廓之後,我們應用凸包技術對圍繞對象點的緊密擬合凸邊界進行設置。實施此步驟後,框架應如下所示-

我們可以做的另一件事是,我們可以遮蓋ROI以僅顯示被檢測到的輪廓本身覆蓋的對象。再次-

什麼是圖像MASK?

圖像MASK是隱藏圖像的某些部分並顯示某些部分的過程。這是圖像編輯的非破壞性過程。在大多數情況下,它使您可以在以後根據需要調整和調整遮罩。通常,它是一種有效且更具創意的圖像處理方式。

因此,基本上在這裡我們將掩蓋ROI的背景。為此,首先我們將修復ROI的背景。然後,在固定背景之後,我們將從框架中減去背景,並用wewant背景(這裡是一個簡單的黑色框架)替換它。

實施上述技術,我們應該得到如下輸出:

(背景被遮罩以僅捕獲對象)

這是所說明技術的理想實現的完整代碼。

相關焦點

  • 基於opencv 的圖像處理入門教程
    前言雖然計算機視覺領域目前基本是以深度學習算法為主,但實際上很多時候對圖片的很多處理方法,並不需要採用深度學習的網絡模型,採用目前成熟的圖像處理庫即可實現,比如 OpenCV 和 PIL ,對圖片進行簡單的調整大小、裁剪、旋轉,或者是對圖片的模糊操作。
  • 使用OpenCV和Python構建自己的車輛檢測模型
    utm_source=blog&utm_medium=vehicle-detection-opencv-python)目錄視頻中運動目標檢測的思想視頻中目標檢測的真實世界用例視頻目標檢測的基本概念 幀差分 圖像閾值 檢測輪廓 圖像膨脹利用OpenCV構建車輛檢測系統視頻中運動目標檢測的思想目標檢測是計算機視覺中一個引人入勝的領域。
  • OpenCV圖像處理專欄十五 |《一種基於亮度均衡的圖像閾值分割技術》
    前言對於光照不均勻的圖像,用通常的圖像分割方法不能取得滿意的效果。為了解決這個問題,論文《一種基於亮度均衡的圖像閾值分割技術》提出了一種實用而簡便的圖像分割方法。該方法針對圖像中不同亮度區域進行亮度補償,使得整個圖像亮度背景趨於一致後,再進行常規的閾值分割。實驗結果表明,用該方法能取得良好的分割效果。
  • OpenCV(四)邊緣檢測
    點擊「藍字」關注我們上一章節,我們在使用圖像輪廓發現的時候使用了圖像邊緣檢測,一次來提高圖像輪廓發現的準確率。事實上在計算機的各個領域都有圖像邊緣檢測的身影。邊緣檢測一大優點就在於可以大幅度減少數據量,並且提出可以認為不相關的信息,保留了圖像的結構屬性。
  • 基於OpenCV來實現對圖像中目標對象檢測識別 以土地為例
    OpenCV是一款非常強大的圖像處理工具,對於從事圖像處理領域相關工作的人來說這個可以說是必不可少的一項工具,用起來也很方面,下嗎是一段簡單的介紹: OpenCV是一個基於BSD許可(開源)發行的跨平臺計算機視覺和機器學習軟體庫,可以運行在Linux、Windows、Android和Mac OS作業系統上。
  • 基於OpenCv 和 Python 的手指識別及追蹤
    使用閾值處理和濾波技術來進行背景消除以獲得最佳結果。我在手指識別時遇到的挑戰之一是將手與背景區分開並識別手指的尖端。我將向您展示我用於手指跟蹤的技術,我在此項目中使用了該技術。如果想要查看手指識別和跟蹤的實際操作,請觀看我上傳的視頻。
  • 基於TensorFlow 、OpenCV 和 Docker 的實時視頻目標檢測
    我使用 OpenCV 和 python3 的多任務處理庫 multiprocessing、多線程庫 multi-threading。我會重點描述我在搭建過程中遇到的問題,以及我的解決方案 (有些還未解決)。
  • OpenCV 之 霍夫變換
    它常用來檢測 直線和曲線 (圓形),識別圖像中的幾何形狀,甚至可用來分割重疊或有部分遮擋的物體。 1  平面坐標和極坐標1)  平面坐標的點 <=> 極坐標(平面化)的曲線    所謂極坐標平面化是指, 將 ρ-θ 的關係像 x-y 那樣在平面內展開。
  • 使用Python+OpenCV進行圖像處理(二)
    整個視覺入門系列內容如下:理解顏色模型與在圖像上繪製圖形(圖像處理基本操作)。基本的圖像處理與濾波技術。從特徵檢測到人臉檢測。圖像分割與分水嶺(Watershed)算法(TBU)在邊緣和輪廓檢測中,噪聲對檢測的精度有很大的影響。
  • 基於OpenCV和Tensorflow的深蹲檢測器
    考慮到我們在深蹲時,有明確階段和大幅度變化的基本運動,實現對深蹲的計數會相對比較簡單。下面我們就一起嘗試實現它吧!數據採集使用帶相機的Raspberry Pi來獲取圖片是非常方便的,完成圖像的拍攝後再利用OpenCV即可將獲取的圖像寫入文件系統。運動識別最初,我們打算使用圖像分割完成人物的提取工作。
  • ImagePy——UI界面支持開放插件的Python開源圖像處理框架
    ImagePy 是一款基於 imagej 等插件的圖像處理框架,它可以與 scipy.ndimage、scikit-image、opencv、simpleitk、mayavi 以及任何基於 numpy 的庫進行組合使用,其地址為 http://imagepy.org。
  • OpenCV圖像處理--邊緣檢測
    引言計算機中的目標檢測與人類識別物體的方式相似。作為人類,我們可以分辨出狗的形象,因為狗的特徵是獨特的。尾巴、形狀、鼻子、舌頭等特徵綜合在一起,幫助我們把狗和牛區分開來。同樣,計算機能夠通過檢測與估計物體的結構和性質相關的特徵來識別物體。其中一個特徵就是邊緣。在數學上,邊是兩個角或面之間的一條線。
  • 基於Otsu分割算法和Nios II軟硬體實現實現實時目標成像跟蹤研究
    :背景區域和(含有部分背景的)目標區域.由於只對目標區域感興趣,把背景區域去掉並不會丟失目標信息.那麼,可以對結果圖像的(含有部分背景的)目標區域進行Otsu分割得到新的結果圖像,接著,把新的結果圖像中背景區域去掉,若目標區域還包含有部分背景,則再對(含有部分背景的)目標區域進行Otsu分割,依次遞歸下去,直到得到比較理想的分割圖像為止.這種方法稱為Otsu局部遞歸分割方法。
  • 一文概述用 python 的 scikit-image 模塊進行圖像分割
    而圖像分割是圖像處理中非常重要的一個步驟,它是把圖像分成若干個特定的、具有獨特性質的區域,並提取出感興趣目標的技術。近日,工程師 Parul Pandey 發表了一篇博文,在博文中,她介紹了用 python 的 scikit-image 庫進行圖像分割的方法。具體涉及 scikit-image 的安裝,圖像導入以及用監督算法和無監督算法進行圖像分割的方法。
  • 如何通過 Python 和 OpenCV 實現目標數量監控?
    檢測-Detection:解決「是什麼?在哪裡?」的問題,即定位出這個目標的的位置並且知道目標物是什麼。分割-Segmentation:分為實例的分割(Instance-level)和場景分割(Scene-level),解決「每一個像素屬於哪個目標物或場景」的問題。
  • 基於顏色特徵與直方圖閾值相結合的田間青椒圖像分割算法
    由於機器人採集的圖像受到自然光的影響,青椒果實表面與其周圍葉片等環境存在一定的差別, 目前常用的圖像分割方法有兩種:利用圖像的顏色特徵進行分割以及利用BP神經網絡對圖像進行分割。本文經過對青椒果實的顏色因子和青椒葉子的顏色因子分析發現,通過RGB顏色因子G與B的差值和G與R的差值的疊加可以將青椒從其背景中有效分割出來。1 圖像的採集 (1)採集時間:圖像獲取的時間,應根據青椒作物的生長狀況和生長規律而定,選擇青椒有較明顯特徵時進行拍攝。
  • 【OpenCV+Python】輪廓特徵中階
    可以使用函數cv2.boundingRect()查找得到,我們來看函數原型:x,y,w,h=cv2.boundingRect(cnt)(x,y)為矩形左上角的坐標;(w,h)是矩形的寬和高,通常情況下,cnt代表識別的輪廓。之後我們利用cv2.rectangle(img, (x,y), (x+w,y+h), (0,255,0), 2)畫出矩形。
  • AOI檢測基本原理與設備構成
    以色列奧寶科技利用了CMOS圖像傳感器極高的圖像信息獨區和處理速度優勢,基於對CMOS 圖像傳感器的深刻理解基礎上,客制化的開發了數據傳輸與幀頻速度高的面陣相機,並系統解決了面陣CMOS傳感器,光源以及同步性等系統問題,成功開發了基於面陣CMOS 圖像傳感器的AOI檢測系統,在保證產業要求的工藝節拍同時,克服了CMOS圖像傳感器填充因子小和信噪比偏高先天劣勢,檢測能力及各項指標都得到了行業內的認可。
  • 利用基於幾何關係的擴增技術從OCT圖像進行病理視網膜區域分割
    然而,由於它們不能模擬不同器官之間的幾何關係,而且大多數擴增方法不能區分正常和病變樣本,因此它們對分割的相關性有限。因此,需要考慮不同解剖區域之間的幾何關係的擴增方法,並為病變和正常病例生成不同的圖像。當前擴增方法的另一個局限性是它們沒有以原則性的方式納入多樣性。
  • 【實驗】OpenCV/Python/dlib眨眼檢測
    今天我們來使用面部標誌和OpenCV 檢測和計算視頻流中的眨眼次數。為了構建我們的眨眼檢測器,我們將計算一個稱為眼睛縱橫比(EAR)的指標,由Soukupová和Čech在其2016年的論文「使用面部標誌實時眼睛眨眼檢測」中介紹。