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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机视觉开源库OpenCV绘制轮廓,并将轮廓排序~

發布時間:2025/5/22 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机视觉开源库OpenCV绘制轮廓,并将轮廓排序~ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

計算機視覺開源庫OpenCV繪制輪廓,并將輪廓排序~示例效果如下:

原圖:

示例代碼如下:

#!/usr/bin/env python3import cv2def sort_contours(cnts, method="left-to-right"):reverse = Falsei = 0if method == "right-to-left" or method == "bottom-to-top":reverse = Trueif method == "top-to-bottom" or method == "bottom-to-top":i = 1boundingBoxes = [cv2.boundingRect(c) for c in cnts](cnts, boundingBoxes) = zip(*sorted(zip(cnts, boundingBoxes),key=lambda b:b[1][i], reverse=reverse))return (cnts, boundingBoxes)def draw_contour(image, c, i):M = cv2.moments(c)cX = int(M["m10"] / M["m00"])cY = int(M["m01"] / M["m00"])cv2.putText(image, "#{}#".format(i + 1), (cX-35, cY+10), cv2.FONT_HERSHEY_SIMPLEX,1.0, (0, 255, 0), 2)return imageimage = cv2.imread("cntdemo.jpg") cv2.imshow("Input Image", image)gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) _, binimg = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)_, contours, _ = cv2.findContours(binimg, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)contours = sorted(contours, key=cv2.contourArea, reverse=False)[:3] cv2.drawContours(image, contours, -1, (0, 0, 255), 2)(contours, boundingBoxes) = sort_contours(contours, method="left-to-right")for (i, c) in enumerate(contours):draw_contour(image, c, i)cv2.imshow("Result Image", image)cv2.waitKey(0) cv2.destroyAllWindows()

?

總結

以上是生活随笔為你收集整理的计算机视觉开源库OpenCV绘制轮廓,并将轮廓排序~的全部內容,希望文章能夠幫你解決所遇到的問題。

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