重磅乾貨,第一時間送達
OpenCV是一個巨大的開源庫,廣泛用於計算機視覺,人工智慧和圖像處理領域。它在現實世界中的典型應用是人臉識別,物體檢測,人類活動識別,物體跟蹤等。
現在,假設我們只需要從整個輸入幀中檢測到一個對象。因此,代替處理整個框架,如果可以在框架中定義一個子區域並將其視為要應用處理的新框架,該怎麼辦。我們要完成一下三個步驟:
定義興趣區
在ROI中檢測輪廓
閾值檢測輪廓輪廓線
什麼是ROI?
簡而言之,我們感興趣的對象所在的幀內的子區域稱為感興趣區域(ROI)。
我們如何定義ROI?
在輸入幀中定義ROI的過程稱為ROI分割。
在「 ROI細分」中,(此處)我們選擇框架中的特定區域,並以矩形方法提供其尺寸,以便它將在框架上繪製矩形的ROI。
(輸出)藍色矩形覆蓋的區域是我們的投資回報率
現在,如果您也想綁定感興趣的對象,那麼我們可以通過在ROI中找到輪廓來實現。
什麼是輪廓?
輪廓線是 表示或說是限制對象形狀的輪廓。
如何在框架中找到輪廓?
對我而言,在將ROI框架設為閾值後,找到輪廓效果最佳。因此,要找到輪廓,手上的問題是-
什麼是閾值?
閾值不過是圖像分割的一種簡單形式。這是將灰度或rgb圖像轉換為二進位圖像的過程。例如
(這是RGB幀)
(這是二進位閾值幀)
因此,在對rgb幀進行閾值處理後,程序很容易找到輪廓,因為由於ROI中感興趣對象的顏色將是黑色(在簡單的二進位脫粒中)或白色(在如上所述的反向二進位脫粒中),因此分割(將背景與前景即我們的對象分開)將很容易完成。
在對框架進行閾值處理並檢測到輪廓之後,我們應用凸包技術對圍繞對象點的緊密擬合凸邊界進行設置。實施此步驟後,框架應如下所示-
我們可以做的另一件事是,我們可以遮蓋ROI以僅顯示被檢測到的輪廓本身覆蓋的對象。再次-
什麼是圖像MASK?
圖像MASK是隱藏圖像的某些部分並顯示某些部分的過程。這是圖像編輯的非破壞性過程。在大多數情況下,它使您可以在以後根據需要調整和調整遮罩。通常,它是一種有效且更具創意的圖像處理方式。
因此,基本上在這裡我們將掩蓋ROI的背景。為此,首先我們將修復ROI的背景。然後,在固定背景之後,我們將從框架中減去背景,並用wewant背景(這裡是一個簡單的黑色框架)替換它。
實施上述技術,我們應該得到如下輸出:
(背景被遮罩以僅捕獲對象)
這是所說明技術的理想實現的完整代碼。