使用Python和OpenCV檢測和標記湖面輪廓

2021-08-22 08:26:39 字數 819 閱讀 3563

我和小冬瓜       2018-08-04 17:00

opencv是乙個跨平台的計算機視覺庫,廣泛的被應用於物體識別,機器視覺和影象處理等領域。這篇文章裡我們將使用opencv探測地圖中湖面的輪廓,並標記面積最大的湖面。下面示例中來至於goolge地圖截圖。

我們需要做的第一件事情就是在我們的python環境中安裝opencv-python。

pip install opencv-python

環境準備好後我們就正式開始,通過opencv提供的cv2.imread可以讀入原始,讀入的被表示成乙個三維陣列的結構,可以通過陣列下標訪問每乙個點的顏色資訊。

中面區域的rgb顏色為[170,218,255],我們只需要在上檢查具有這種顏色的區域,這裡我們允許正負10的偏差。另外注意,在opencv顏色表示的順序稍有不同,opencv採用的bgr順序。

opencv提供了cv2.inrange函式,這個函式對進行二值化處理,將不在閥值範圍內的點變換為黑色點[0,0,0],處於範圍內的點變換為白色點[255,255,255]。

opencv提供了cv2.findcontours()函式提取二值化影象的輪廓。對上面生成上執行這個函式就可以返回該的區域輪廓。由於執行該函式時會直接修改影象,因此我們複製乙份影象之傳給cv2.findcontours();同時,opencv提供了cv2.drawcontour()函式繪可以把輪廓疊加到另一張上。

下面的**使用cv2.findcontours()函式對mask提取輪廓,並呼叫cv2.drawcontour()把輪廓疊加在原始影象。

我們可以看見所有湖面被標記,如下圖:

現在我們對返回的輪廓就進行排序,第乙個輪廓就是面積最大的。

使用Python和OpenCV實現SIFT與ORB

目錄如下 目錄orb pratice.py 相關理論 import cv2 import numpy as np 該程式使用dataset中的1.jpg和2.jpg,使用sift對這2張進行特徵檢測和特徵提取,使用暴力匹配法對這2張進行特徵匹配,最後計算匹配程度較高的特徵點的單應性矩陣 讀取 建立s...

使用Python和OpenCV進行文字偏斜校正

這篇部落格將介紹如何使用python和opencv進行文字偏斜校正。給定影象包含未知角度的旋轉文字塊,需要通過以下方法糾正文字傾斜 該演算法本身非常簡單,僅依賴於基本的影象處理技術,例如閾值處理,計算旋轉矩形的最小面積,然後應用仿射變換來校正偏斜。通常會在自動文件分析中使用這種文字偏斜校正演算法,目...

Python安裝OpenCV 基本使用

第一步 安裝numpy 第二步 安裝opencv contrib python 設定捕獲視窗大小 ret cap.set 4,240 while cap.isopened ret,frame cap.read gray cv2.cvtcolor frame,cv2.color bgr2gray 彩色...