opencv find4QuadCornerSubpix与cornerSubPix()的区别
时间: 2024-05-22 12:13:17 浏览: 170
find4QuadCornerSubpix()是一个OpenCV函数,用于在图像中寻找四边形的角点。它可以使用较少的计算量来提高角点的精度,并且可以处理由于图像畸变而产生的角点偏移。
而cornerSubPix()也是一个OpenCV函数,用于在图像中寻找角点。它使用亚像素级别的精度来提高角点的精度,并且可以处理由于图像畸变而产生的角点偏移。与find4QuadCornerSubpix()不同的是,cornerSubPix()可以处理任意数量的角点,而不仅仅是四边形的角点。
因此,find4QuadCornerSubpix()主要用于寻找四边形的角点,而cornerSubPix()则适用于在图像中寻找任意数量的角点。
相关问题
opencv find4QuadCornerSubpix的使用方法
函数find4QuadCornerSubpix是OpenCV中的一个用于亚像素级别的角点检测的函数。它可以对角点进行亚像素级别的定位,提高角点检测的精度。
函数的使用方法如下:
```cpp
void cv::find4QuadCornerSubpix(
cv::InputArray img, // 输入图像,必须是灰度图像
cv::InputOutputArray corners, // 输入输出参数,角点的坐标
cv::Size region_size = cv::Size(-1, -1), // 搜索区域的大小,默认为3x3
cv::Size zero_zone = cv::Size(-1, -1), // 角点中心的区域大小,用于去除噪声,默认为-1x-1
cv::TermCriteria criteria = cv::TermCriteria(cv::TermCriteria::EPS + cv::TermCriteria::MAX_ITER, 30, 0.1) // 停止条件,默认为最大迭代次数为30,最大误差为0.1
)
```
其中,输入参数img必须是灰度图像,角点的坐标保存在输入输出参数corners中,可以通过函数cornerSubPix先对图像进行角点检测再将检测到的角点坐标传递给函数find4QuadCornerSubpix。函数中还可以设置搜索区域的大小、角点中心的区域大小和停止条件等参数。
使用示例:
```cpp
cv::Mat img = cv::imread("test.jpg", cv::IMREAD_GRAYSCALE);
std::vector<cv::Point2f> corners;
cv::goodFeaturesToTrack(img, corners, 100, 0.01, 10);
cv::cornerSubPix(img, corners, cv::Size(5, 5), cv::Size(-1, -1), cv::TermCriteria(cv::TermCriteria::EPS + cv::TermCriteria::MAX_ITER, 30, 0.1));
cv::find4QuadCornerSubpix(img, corners, cv::Size(3, 3), cv::Size(-1, -1), cv::TermCriteria(cv::TermCriteria::EPS + cv::TermCriteria::MAX_ITER, 30, 0.1));
```
上述代码使用函数goodFeaturesToTrack先对图像进行角点检测,然后使用函数cornerSubPix对检测到的角点坐标进行亚像素级别的定位,最后使用函数find4QuadCornerSubpix对角点进行进一步的亚像素级别的定位。
module 'cv2.cv2' has no attribute 'find4QuadCornerSubpix'
引用\[1\]:如果你在使用OpenCV时遇到了"module 'cv2.cv2' has no attribute 'find4QuadCornerSubpix'"这个错误,可能是因为你使用的OpenCV版本不支持该函数。你可以尝试降级到opencv-python3.4.2.16和opencv-contrib-python3.4.2.16,这两个版本支持find4QuadCornerSubpix函数。具体操作可以在pycharm中进行,按照上述步骤安装好这两个版本后,你应该可以正常使用find4QuadCornerSubpix函数了。\[2\]\[3\]
#### 引用[.reference_title]
- *1* [Python中使用OpenCV读取灰度图像时遇到的错误:module ‘cv2‘ has no attribute ‘CV_LOAD_IMAGE_GRAYSCA....](https://blog.csdn.net/update7/article/details/129761669)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [对于module ‘cv2.cv2‘ has no attribute ‘xfeatures2d‘问题的解决](https://blog.csdn.net/qq_41873211/article/details/115251186)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文