You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于OpenCV的96孔细胞培养板外边缘圆环检测问题求助

96孔细胞培养板定位问题:广角镜头下Hough Transform误识别孔内边缘

我正在使用OpenCV和Python定位96孔细胞培养板的位置,以实现检测流程自动化。但由于相机配备广角镜头,生成的图像不适用于Hough Transform检测定位孔(圆环)——该函数会将孔的内部识别为圆环。

相关图像

  • 原始图像:
    原始96孔细胞培养板图像

  • Hough Transform检测结果图(红色点为检测到的圆心,黑色圆环为检测出的圆环):
    Hough Transform检测结果

尝试过的代码

我尝试在使用Hough Transform前将图像转为灰度图,代码如下:

import cv2 
import numpy as np
import matplotlib.pyplot as plt

img_path = "image_path" 

img = cv2.imread(img_path) # 读取图像
img_height, img_width, img_col_channels = img.shape # 获取图像基本信息
print(img_height, img_width)

gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# blurred_image = cv2.GaussianBlur(gray_img, (9, 9), 2)

# gray_img = cv2.blur(gray_img, (3,3)) # 模糊降噪?

detected_circles = cv2.HoughCircles(gray_img, # 检测用图像
                                    cv2.HOUGH_GRADIENT, # 检测方法
                                    1, # 分辨率反比
                                    img_height/64, # 不确定是否需要调整
                                    param1 = 200,
                                    param2 = 10,
                                    minRadius = 14, # 未知则输入0
                                    maxRadius = 15 # 未知则输入0
                                )

if detected_circles is not None:
    print("检测到圆环") 
    detected_circles = np.uint16(np.around(detected_circles))
    for i in detected_circles[0, :96]: # 最多检测96个圆环
        cir_center = (i[0], i[1]) # 圆心坐标元组
        # print(cir_center)
        cir_radius = i[2] # 圆环半径
        cv2.circle(img, cir_center, 1, (0, 0, 255), 5) # 标记圆心(红色)
        cv2.circle(img, cir_center, cir_radius, (0, 0, 0), 5) # 标记圆环轮廓(黑色)
    cv2.imshow("Detected Circle", img) 
    cv2.waitKey(0) 
else:
    print("未检测到圆环")

cv2.destroyAllWindows()

其他尝试

我还尝试使用Canny边缘检测处理图像,但仍会检测到孔的内边缘,结果与之前一致。

恳请各位提供解决建议或方案!

更新说明

  • 感谢fmw42的评论,已更新代码以确保可复现性,并补充了图像细节。

内容的提问来源于stack exchange,提问作者Marcus A.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 16:27:28