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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python OpenCV 将同心圆环填充为实心圆

發布時間:2023/12/16 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python OpenCV 将同心圆环填充为实心圆 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 應用概覽
  • 測試代碼
  • 效果圖
  • 參考引用


應用概覽

近期在測試設計的帶方位點的圓點特征提取算法與傳統的OpenCV的圓點提取算法,在標定應用上精度的差異,但是遇到了一個問題———加工廠商制作實心圓點標定板時搞錯需求了,于是我擁有了兩塊如圖所示的帶方位點的圓點標定板。。。

除此之外還有一個問題在于,如果我要橫向對比兩種圖案對于標定精度的影響,標定板的擺放姿態需要盡可能一致,因此需要通過圖像處理的方式將圖中的同心圓環進行填充,得到實心圓點

測試代碼

代碼為批量處理腳本,處理邏輯是現將圖片進行自適應閾值處理,之后提取輪廓,對存在父輪廓的邊緣(同心圓內圓)進行填充處理,實現將同心圓轉換為實心圓點,該方法可以用在類似需要填充圖形內部的需求場景中。

import cv2 as cv import numpy as np import os# 輸入圖像地址 input_data_directory = "./data" # 輸出圖像地址 output_data_directory = "./output"array_of_img = [] # 批量文件讀入函數 def read_directory(directory_name):for filename in os.listdir(r"./"+directory_name):array_of_img.append(filename)read_directory(input_data_directory) # 圖像處理部分 for filename in array_of_img:img_gray = cv.imread(input_data_directory + '/' + filename, 0)_, thresh = cv.threshold(img_gray, 0, 255, cv.THRESH_BINARY + cv.THRESH_OTSU)contours, hierarchy = cv.findContours(thresh, cv.RETR_CCOMP, 2)# 找到內層輪廓并填充# hierarchy的形狀為(1,6,4),使用np.squeeze壓縮一維數據,變成(6,4)hierarchy = np.squeeze(hierarchy)for i in range(len(contours)):# 存在父輪廓,說明是里層if (hierarchy[i][3] != -1):# -1表示填充cv.drawContours(img_gray, contours, i, (0, 0, 0), -1)cv.imwrite(output_data_directory + '/' + filename, img_gray)print("轉換完成")

效果圖

參考引用

  • 在OpenCV中填充圓圈
  • python批量讀取存儲圖片
  • 總結

    以上是生活随笔為你收集整理的Python OpenCV 将同心圆环填充为实心圆的全部內容,希望文章能夠幫你解決所遇到的問題。

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