日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

使用Python,OpenCV寻找图像中的轮廓

發布時間:2023/11/27 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Python,OpenCV寻找图像中的轮廓 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用Python和OpenCV查找圖像中的形狀

    • 1. 效果圖
    • 2. 步驟
    • 3. 源碼
    • 參考

這篇博客將討論使用Python和OpenCV查找圖像中的形狀,具體是

  • cv2.inRange在圖像中查找形狀;
  • cv2.findContours尋找輪廓;

自己開發項目以提高和磨練技能 是最好的學習方法,我強烈推薦給對計算機視覺感興趣的所有人。

1. 效果圖

原圖:

閾值化的mask圖:
找出圖像中黑色的形狀輪廓圖:

2. 步驟

觀察發現所有的形狀顏色基本都是黑色,定義顏色邊界,黑色~深灰色

  1. 加載圖像
  2. 提取出圖像中介于白色和深灰色的像素
  3. 提取輪廓
  4. 遍歷輪廓并展示

3. 源碼

# USAGE
# python find_shapes.py --image shapes.png# 導入必要的包
import argparseimport cv2
import imutils
import numpy as np# 構建命令行參數及解析
# --image:圖像的路徑
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", help="path to the image file")
args = vars(ap.parse_args())# 加載圖像
image = cv2.imread(args["image"])
cv2.imshow("origin Image", image)
cv2.waitKey(0)# 目標:檢測圖像中的黑色形狀 使用cv2.inRange實際上檢測這些黑色形狀非常容易
# 檢測圖像中的所有黑色形狀
# OpenCV以BGR格式存儲圖像,定義圖像顏色的上下邊界
lower = np.array([0, 0, 0])  # 純黑色
upper = np.array([15, 15, 15])  # 包含非常深的灰色陰影
shapeMask = cv2.inRange(image, lower, upper)# 原始圖像中的所有黑色形狀現在在黑色背景上均為白色。
# 檢測shapeMask中的輪廓
cnts = cv2.findContours(shapeMask.copy(), cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
cnts = imutils.grab_contours(cnts)  # 兼容不同版本的openCV結果
print("I found {} black shapes".format(len(cnts)))
cv2.imshow("Mask", shapeMask)# 遍歷檢測到的輪廓
for c in cnts:# 畫出輪廓并展示 綠色cv2.drawContours(image, [c], -1, (0, 255, 0), 2)cv2.imshow("Image", image)cv2.waitKey(0)

參考

  • https://www.pyimagesearch.com/2014/10/20/finding-shapes-images-using-python-opencv/

總結

以上是生活随笔為你收集整理的使用Python,OpenCV寻找图像中的轮廓的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。