opencv识别圆内的不同图案的质心
时间: 2023-06-11 11:05:45 浏览: 52
好的,我明白了。针对您的问题,您可以使用OpenCV的HoughCircle函数来检测圆形,然后使用findContours函数找到不同图案的轮廓。最后,使用moments函数计算每个轮廓的质心。以下是一个简单的示例代码:
```
import cv2
img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
# 检测圆形
circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1, 20, param1=50, param2=30, minRadius=0, maxRadius=0)
if circles is not None:
# 提取圆形
circles = np.round(circles[0, :]).astype("int")
# 寻找不同图案的轮廓
_, threshold = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
contours, _ = cv2.findContours(threshold, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 计算每个轮廓的质心
for c in contours:
M = cv2.moments(c)
if M["m00"] != 0:
cx = int(M["m10"] / M["m00"])
cy = int(M["m01"] / M["m00"])
print('质心坐标:', cx, cy)
```
这个示例代码将图像文件读入并将其转换为灰度图像,使用HoughCircle函数检测圆形,然后使用findContours函数找到不同图案的轮廓。最后,使用moments函数计算每个轮廓的质心,并打印出它们的坐标。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)