Cv2.GetRectSubPix注解
时间: 2023-06-21 16:15:07 浏览: 101
`cv2.getRectSubPix()`是OpenCV的一个函数,用于在给定图像中提取指定大小和位置的矩形区域。它的语法为:
```
cv2.getRectSubPix(src, patchSize, center [, dst [, patchType]]) → dst
```
其中,参数含义如下:
- `src`: 输入图像
- `patchSize`: 要提取的矩形区域的大小
- `center`: 矩形区域的中心点坐标
- `dst`: 输出图像(可选)
- `patchType`: 补零方式(可选)
该函数会根据给定的中心点坐标和大小,在输入图像中提取指定的矩形区域,并将其复制到输出图像中。如果没有提供输出图像,则会创建一个与输入图像大小相同的空白图像,并将矩形区域复制到该图像中。补零方式可以指定为`cv2.BORDER_CONSTANT`、`cv2.BORDER_REPLICATE`、`cv2.BORDER_REFLECT`等,用于在矩形区域周围填充像素值。
相关问题
这段代码的第38行运行不了 import cv2 import numpy as np # 读取左右两张图像 img_left = cv2.imread('share4/img_put/7/7.3/left_0.jpg', 0) img_right = cv2.imread('share4/img_put/7/7.3/right_0.jpg', 0) # 读取左右两张图像 img1 = cv2.imread('left.png', 0) img2 = cv2.imread('right.png', 0) img1 = cv2.UMat(img1) img2 = cv2.UMat(img2) # 初始化ORB特征点提取器和SGBM算法 orb = cv2.ORB_create() sgbm = cv2.StereoSGBM_create(minDisparity=0, numDisparities=128, blockSize=11) # 提取左右两幅图像的特征点 kp_left, desc_left = orb.detectAndCompute(img_left, None) kp_right, desc_right = orb.detectAndCompute(img_right, None) # 特征点匹配 bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True) matches = bf.match(desc_left, desc_right) # 根据特征点得到匹配窗口并进行立体匹配 disparities = np.zeros_like(img_left) for match in matches: pt_left = np.array(kp_left[match.queryIdx].pt, dtype=np.int) pt_right = np.array(kp_right[match.trainIdx].pt, dtype=np.int) win_size = 11 left_win = cv2.getRectSubPix(img_left, (win_size, win_size), tuple(pt_left)) right_win = cv2.getRectSubPix(img_right, (win_size, win_size), tuple(pt_right)) disparity = sgbm.compute(left_win, right_win).astype(np.float32) / 16.0 disparities[pt_left[1], pt_left[0]] = disparity # 显示视差图 cv2.imshow('disparities', disparities) cv2.waitKey()
这个问题可能是因为缺少了cv2或numpy模块。你需要在你的计算机上安装这些模块才能运行该程序。你可以通过在终端上使用pip命令来安装这些模块。例如,你可以输入"pip install opencv-python"来安装cv2模块,输入"pip install numpy"来安装numpy模块。
Traceback (most recent call last): File "D:\23101\比赛\光电赛\maze_car\test2.py", line 46, in <module> square_roi = cv2.getRectSubPix(rotated_img, (square_size, square_size), square_center) cv2.error: OpenCV(4.7.0) :-1: error: (-5:Bad argument) in function 'getRectSubPix' > Overload resolution failed: > - Can't parse 'patchSize'. Sequence item with index 0 has a wrong type > - Can't parse 'patchSize'. Sequence item with index 0 has a wrong type
这个错误通常是由于提供给 `getRectSubPix()` 函数的参数类型不正确引起的。可以检查以下参数是否正确:
1. `rotated_img` 是否是一个有效的图像。
2. `square_size` 是否是整数类型的值。
3. `square_center` 是否是一个包含两个浮点数的元组。
如果以上参数都正确,可以尝试将 `square_size` 转换为整数类型,例如:`square_size = int(square_size)`。如果仍然存在问题,可以检查 OpenCV 的版本是否正确,并尝试安装最新的版本。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)