import cv2 import numpy as np img=cv2.imread("E:/beans.jpg",0) # 将图片进行灰度处理 imgs=cv2.resize(img,None,fx=1/6,fy=1/6) # 调整图片大小 t1,dst=cv2.threshold(imgs,100,255,cv2.THRESH_BINARY_INV) # 将图片进行反二值化处理 k=np.ones((5,5),np.uint8) # 设定内核为5 img2=cv2.dilate(dst,k) # 将图片进行腐蚀、膨胀处理 img1=cv2.erode(img2,k) img3=cv2.erode(img1,k) img4=cv2.dilate(img3,k) cv2.imshow('image', img4) cv2.imwrite("E:/bin_beans.jpg",img4) # 保存图像 cv2.waitKey(0) cv2.destroyAllWindows() # 查找轮廓 contours, hierarchy = cv2.findContours(img4, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) # 遍历轮廓并绘制 for contour in contours: cv2.drawContours(img4, [contour], 0, (0, 255, 0), 2) # 显示图像 cv2.imshow('image', img4) cv2.waitKey(0) cv2.destroyAllWindows() # 输出轮廓数量(也就是豆子的颗粒数) print(len(contours))
时间: 2023-02-06 20:07:57 浏览: 336
这是 Python 代码,它导入了两个模块 cv2 和 numpy,并从本地磁盘中读取一张图片 "E:/beans.jpg",将其转换为灰度图并赋值给变量 img。
cv2 是一个用于图像处理和计算机视觉的库,numpy 是一个用于科学计算的库。这两个库都是 Python 中常用的工具库。
imread() 是 cv2 库中的一个函数,用于从本地磁盘中读取图像。第一个参数是图像文件的路径,第二个参数是可选的,表示读取图像的模式,0 表示灰度图,1 表示彩色图。
阅读全文