import cv2
import numpy as np
from matplotlib import pyplot as plt
__author__ = "zxsuperstar"
__email__ = "zxsuperstar@163.com"
"""
霍夫圆检测
"""
def detect_circle_demo(image):
# dst = cv2.cv2.GaussianBlur(image,(3,3),0) #高斯滤波
# cv2.imshow("dst",dst)
#Mean Shift的优点就在于如果是像背景桌面的浅色纹理,
# 图像分割的过程中相当于将这些小的浮动过滤掉,并且保留相对明显的纸张边缘
# dst = cv2.bilateralFilter(src=image, d=0, sigmaColor=100, sigmaSpace=15) #高斯双边滤波
dst = cv2.pyrMeanShiftFiltering(image,10,100) # 均值偏移滤波
cimage = cv2.cvtColor(dst,cv2.COLOR_BGRA2GRAY)
# ret, cimage = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# cimage = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY, 3, 5)
# cimage = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 3, 5)
cv2.imshow("cimage",cimage)
circle = cv2.HoughCircles(cimage, cv2.HOUGH_GRADIENT,1,200,param1=50,param2=30,minRadius=0,maxRadius=0)
Python-OpenCV 图像处理(十九):霍夫圆检测 (发票印章去除)
最新推荐文章于 2025-06-14 14:43:18 发布