python - 计算圆内的直方图值(houghcircles)
问题描述
我一直在尝试转换此 matlab 代码如何检测泡罩包装中的缺陷/缺失药丸?(Matlab) 进入python,我已经在这个问题上停留了一段时间。我试图在我的图像中检测到的霍夫圆内找到直方图值。我尝试为检测到的每个圆圈应用一个掩码并计算这些掩码内的历史值,但我得到的历史值为零。当我尝试使用
masked_img = cv2.bitwise_and(img, img, mask=mask)
cv2.imshow("Masked", masked_img)
在代码末尾,窗口显示黑屏
我的完整代码如下所示
import cv2
import numpy as np
pills = cv2.imread('pill6.jpg').astype('uint8')
gray_img = cv2.cvtColor(pills, cv2.COLOR_BGR2GRAY)
img = cv2.medianBlur(gray_img, 5)
cimg = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
#applying the hough circle transform
circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1, 70, param1=100, param2=30, minRadius=40, maxRadius=60)
circles = np.uint16(np.around(circles))
for i in circles[0, :]:
#draw the outer circle
cv2.circle(pills, (i[0], i[1]), i[2], (0, 255, 0), 6)
#applying the mask
for indexx, ch in enumerate(pills):
mask = np.zeros(img.shape[:2], dtype="uint8")
cv2.circle(mask, (i[0], i[1]), i[2], (0, 255, 0), 6)
hist_item = cv2.calcHist([pills], [0], mask, [255], [0, 255])
print(max(hist_item))
cv2.imshow("HoughCirlces", pills)
cv2.waitKey()
cv2.destroyAllWindows()
解决方案
推荐阅读
- c++ - 在 F' (F prime) 中运行 fprime-util 检查时出错
- python - 诗歌问题 - Visual Studio 代码调试中的 ModuleNotFoundError
- javascript - 如何使用 Axios 将 React App 连接到使用 Sessions 的 ExpressJS 服务器
- algorithm - 哪种算法最适合在树中查找 LCA?
- sql - 需要帮助 - 使用数据透视函数获取用户每次交易的总执行次数
- node.js - 如何将事件添加到 NodeJS 中的派生/子类?
- python - vscode Jupyter notebook 运行按钮丢失
- python - 计算元组列表中数值的平均值
- reactjs - 如何在 React 的查询字符串中添加几个条件
- node.js - 将 module.exports[something] 转换为 es6 语法