问题描述
-
我正在努力检测条形码中的各个线条/矩形。它们的宽度不同,但高度相同(条形码本身的高度)。
-
我遇到的问题是,尽管矩形看起来相同并且彼此平行,但我无法设法检测到它们,除非更改我正在扫描的图像以使最窄的矩形变宽。有什么建议吗?
-
我尝试了几种不同的设置,但这是我目前的设置:
blur = cv2.pyrMeanShiftFiltering(image,11,21)
gray = cv2.cvtColor(blur,cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray,255,cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]
cnts = cv2.findContours(thresh,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]
for c in cnts:
area = cv2.contourArea(c)
perimeter = cv2.arcLength(c,True)
approx = cv2.approxpolyDP(c,0.001 * perimeter,True)
if len(approx) == 4:
x,y,w,h = cv2.boundingRect(approx)
x = cv2.rectangle(image,(x,y),(x+w,y+h),(36,250,12),1)
这是生成的图像(剪切以删除包含的信息)我试图检测条形码的所有外条。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)