Python-Opencv实现魔方边缘识别

前言

同学要做拧魔方机器人,但是他对视觉识别方面的知识不太明白,于是我帮他完成了识别魔方色块边缘的功能,过程中学习了不少可以用于图像处理的函数。下面我会先详解每一个函数,然后再给出整合后的代码。

环境配置:我是在anaconda上配置的python3.8的环境,用Jupyter Notebook来编写运行代码。

函数详解

魔方图片:
原始图片

先对目标图像进行预处理:

imgobj = cv2.imread('CV_img/test2.jpg')
gray = cv2.cvtColor(imgobj, cv2.COLOR_BGR2GRAY)

blurred = cv2.GaussianBlur(gray, (3, 3), 0)

canny = cv2.Canny(blurred, 20, 40)

kernel = np.ones((3,3), np.uint8)
dilated = cv2.dilate(canny, kernel, iterations=2) 

#闭运算,先膨胀再腐蚀,可以填充孔洞(√)
dilated=morphology.dilation(dilated,morphology.square(8))
dilated=morphology.erosion(dilated,morphology.square(8))

cv2.imread先读取测试图片;

cv2.cvtColor(p1,p2) 是颜色空间转换函数,p1是需要转换的图片,p2是转换成何种格式。cv2.COLOR_BGR2GRAY 是将BGR格式转换成灰度图片;

cv2.GaussianBlur是高斯滤波,是平滑滤波的一种方法,而Canny算子是边缘检测的一种算法,通过这两个函数对图像进行滤波运算。

  • 4
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值