大致思路如下
- 对图片做降噪滤波处理
- 寻找硬币的边缘
- 使用硬币边缘打造蒙版,并切割出图像
对应的方法如下
- 对图片进行二值化
COLOR_BGR2GRAY
处理,高斯滤波GaussianBlur
处理。 - 使用
canny
算子进行边缘查找,并使用findContours
方法提取边缘坐标点。 - 使用
boundingRect
方法找出硬币所在的矩形进行裁切,使用minEnclosingCircle
找出包络圆作为蒙版,并使用bitwise_and
隐藏背景。
首先导入必要的库,测试一下是否加载成功,注意cv2.waitKey(0)
一定不要忘记!
import cv2
import numpy as np
image = cv2.imread("coins.png")
cv2.imshow("if imread successfully",image)
cv2.waitKey(0)
接着进行灰度处理和模糊处理,在这之前需要关掉第一张图像
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray,(11,11),0)
cv2.imshow("blurred",blurred)
cv2.waitKey