介绍
本文的目的在于实现图片中的目标物体裁剪,代码亲测的,挺好用的,不需要手动裁剪图片啦。
具体代码详见:https://download.youkuaiyun.com/download/woniuhuihui/12034891
代码环境为:opencv3+python
step1:读入图片,并将图片转成灰度图

image = cv2.imread("./photo49.jpg")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
step2:用Sobel算子计算x,y方向上的梯度,之后在x方向上减去y方向上的梯度,通过这个减法,我们留下具有高水平梯度和低垂直梯度的图像区域。
gradX = cv2.Sobel(gray, ddepth=cv2.CV_64F, dx=1, dy=0, ksize=-1)
gradY = cv2.Sobel(gray, ddepth=cv2.CV_64F, dx=0, dy=1, ksize=-1)
gradient = cv2.subtract(gradX, gradY)
gradient = cv2.convertScaleAbs(gradient)

step3:去除图像上的噪声。首先使用低通滤泼器平滑图像(9 x 9内核),这将有助于平滑图像中的高频噪声。低通滤波器的目标是降低图像的变化率。如将每个像素替换为该像素周围像素的均值。这样就可以平滑并替代那些强度变化

本文介绍了一种使用OpenCV和Python自动裁剪图片中目标物体的方法,包括图片转灰度、梯度计算、噪声去除、形态学操作、轮廓检测等步骤,最后通过绘制轮廓找到目标物体并进行裁剪。
最低0.47元/天 解锁文章

2064

被折叠的 条评论
为什么被折叠?



