如何解决形态转换opencv新手提问
希望大家今天都有美好的一天。所以我在这里在树莓派上学习python,opencv,我希望有人可以解释下面的代码,我从https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_morphological_ops/py_morphological_ops.html中读到了内容,但没有解释迭代的含义以及如何选择最好的?以及物体检测有什么用, 谢谢。
for frame in cam.capture_continuous(raw,format="bgr",use_video_port=True):
frame = frame.array
hsv = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
mask = cv2.inRange(hsv,colorLower,colorUpper)
mask = cv2.blur(mask,(3,3))
mask= cv2.dilate(mask,None,iterations=5)
mask= cv2.erode(mask,iterations=1)
mask= cv2.dilate(mask,iterations=3)
me,thresh = cv2.threshold(mask,127,255,cv2.THRESH_BINARY)
cnts = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)[-2]
center = None
解决方法
无论哪种方式,这都是很明显的概念,如documentation中所述:
迭代次数:应用膨胀的次数。
所以iterations=5
意味着我们连续进行了5次扩张。
关于此过程的应用程序,我建议您阅读Eroding and Dilating Tutorial from OpenCV,它非常清楚地解释了这些方法的工作原理,但是绝对的基本原理是我们需要腐蚀和膨胀以去除图像中的噪声,并且闭合不会形成轮廓的“孔”。
此转换的目的是使我们正在寻找的对象具有非常坚固的图像,以便以后检测轮廓。
根据视频,相机功能,分辨率,噪声量等的不同,我们应用的迭代和变换次数的值会有很大差异。您应该进行实验并找到适合您特定情况的最佳方法,或者进行一般的腐蚀+扩张,并期盼最好。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。