opencv 二维归一化坐标 (u, v) 显示图片
时间: 2024-09-27 13:17:47 浏览: 31
OPENCV SFM 多视图三维重建
在OpenCV中,二维归一化坐标(u, v)通常用于表示图像像素相对于图像尺寸的比例,它们的范围通常是0到1之间。这种归一化有助于处理图像缩放和平移等操作,因为无论原图大小如何,相同的(u, v)值都会对应于相同的位置。
如果你想在图像上显示归一化坐标(u, v),可以按照以下步骤操作:
1. **创建图像**:首先,你需要有一个图像,例如一个灰度或彩色图像。
```cpp
cv::Mat image = ... // 加载或创建你的图像
```
2. **选择一个点**:确定你想在图像上显示归一化坐标的某个像素点,假设是(x, y)。
```cpp
int x = ...;
int y = ...;
```
3. **转换为归一化坐标**:使用图像的实际尺寸计算出(u, v)。比如,对于一个宽度为width和高度为height的图像,归一化坐标计算如下:
```cpp
double u = (double)x / width;
double v = (double)y / height;
```
4. **绘制点**:利用归一化坐标,可以在图像上画一个小的十字或者圆圈来标识这个点,通常颜色会不同,例如绿色或红色。
```cpp
cv::line(image, Point(x, y), Point((int)(u * width), (int)(v * height)), Scalar(0, 255, 0)); // 线条表示归一化坐标
cv::circle(image, Point((int)(u * width), (int)(v * height)), 2, Scalar(0, 0, 255), -1); // 圆点表示归一化坐标
```
5. **显示图像**:
```cpp
cv::imshow("Normalized Coordinates", image);
cv::waitKey(0);
```
阅读全文