opencv3.8中cv::createLineSegmentDetector()函数的参数
时间: 2023-06-15 11:04:27 浏览: 142
`cv::createLineSegmentDetector()` 函数的参数如下:
- `cv::LSD_REFINE_NONE`:线段检测器不进行细化。
- `cv::LSD_REFINE_STD`:线段检测器使用标准细化方法。
- `cv::LSD_REFINE_ADV`:线段检测器使用改进的细化方法。
其中,细化方法可以提高线段检测的准确性和稳定性,但会增加计算量和时间。默认情况下,使用 `cv::LSD_REFINE_STD`。
相关问题
opencv3.8中cv2.createLineSegmentDetector()函数
在 OpenCV 3.8 版本中,cv2.createLineSegmentDetector() 函数用于创建一个可以检测图像中线段的对象。该函数接受一个可选参数,即线段检测器的类型。它可以是 LSD_REFINE_STD(标准线段检测),也可以是 LSD_REFINE_ADV(改进的线段检测)。该函数返回一个名为 LSD(LineSegmentDetector)的对象,该对象具有detect()方法,该方法接受图像作为输入并返回检测到的线段的列表。检测到的每条线段都是一个四元组(x1,y1,x2,y2),其中(x1,y1)和(x2,y2)是线段的两个端点的坐标。
D:\python3.8\python.exe D:/pythonProject1/bishe1.py 俯视or侧视:俯视 D:\python3.8\lib\site-packages\skimage\io\_plugins\matplotlib_plugin.py:149: UserWarning: Low image data range; displaying image with stretched contrast. lo, hi, cmap = _get_display_range(image) Traceback (most recent call last): File "D:/pythonProject1/bishe1.py", line 65, in <module> contours,h=cv.findContours(edge,cv.RETR_TREE,cv.CHAIN_APPROX_NONE) cv2.error: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\contours.cpp:197: error: (-210:Unsupported format or combination of formats) [Start]FindContours supports only CV_8UC1 images when mode != CV_RETR_FLOODFILL otherwise supports CV_32SC1 images only in function 'cvStartFindContours_Impl' 进程已结束,退出代码1
根据你的描述,这是一段 Python 代码,使用了 OpenCV 库中的 findContours 函数进行轮廓查找。但是在调用 findContours 函数时,出现了错误。错误信息显示 findContours 函数的参数有误,可能是由于输入的图像格式不正确导致的。建议检查一下输入的图像是否为灰度图像,以及是否使用了正确的数据类型。在调用 findContours 函数时,可以使用 cv2.cvtColor() 函数将彩色图像转换为灰度图像,然后使用 astype() 函数将数据类型转换为 uint8,即可避免这个错误。代码如下:
```
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = gray.astype('uint8')
contours, hierarchy = cv2.findContours(gray, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
```
其中,cv2.COLOR_BGR2GRAY 是将彩色图像转换为灰度图像的参数。astype() 函数用于将数据类型转换为 uint8。
阅读全文