python检测线条复杂度_opencvpython:只在ROI中检测线条

这篇博客探讨了如何使用OpenCV在Python中检测感兴趣区域(ROI)内的线条。作者遇到的问题是在ROI上运行HoughLinesP函数时出现错误。他们读取图像,将其转为灰度,选择ROI,然后尝试在裁剪的ROI上检测线条,但遇到了类型不匹配的错误。作者提供了代码示例并寻求解决方案。
摘要由CSDN通过智能技术生成

我想检测感兴趣区域内的线条。我的输出图像应该显示原始图像和所选ROI中检测到的线条。到目前为止,在原始图像中查找线条或选择ROI都不是问题,但仅在ROI内查找线条并不起作用。我的MWE读取图像,将其转换为灰度,并允许我选择一个ROI,但当HoughLinesP想要读取roi时,会给出一个错误。在import cv2

import numpy as np

img = cv2.imread('example.jpg',1)

gray = cv2.cvtColor(img ,cv2.COLOR_BGR2GRAY)

# Select ROI

fromCenter = False

roi = cv2.selectROI(gray, fromCenter)

# Crop ROI

roi = img[int(roi[1]):int(roi[1]+roi[3]), int(roi[0]):int(roi[0]+roi[2])]

# Find lines

minLineLength = 100

maxLineGap = 30

lines = cv2.HoughLinesP(roi,1,np.pi/180,100,minLineLength,maxLineGap)

for x in range(0, len(lines)):

for x1,y1,x2,y2 in lines[x]:

cv2.line(img,(x1,y1),(x2,y2),(237,149,100),2)

cv2.imshow('Image',img)

cv2.waitKey(0) & 0xFF

cv2.destroyAllWindows()

控制台显示:lines = cv2.HoughLinesP(roi,1,np.pi/180,100,minLineLength,maxLineGap)

error: OpenCV(3.4.1)

C:\Miniconda3\conda-bld\opencv-suite_1533128839831\work\modules\imgproc\src\hough.cpp:441:

error: (-215) image.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) <<

3)) in function cv::HoughLinesProbabilistic

我的假设是roi没有正确的格式。我使用的是python3.6和spyder3.2.8。

谢谢你的帮助!在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值