c++ OpenCV图像旋转90度
时间: 2023-03-22 10:01:07 浏览: 242
可以使用OpenCV的rotate函数来实现图像旋转。下面是一个旋转90度的例子代码:
```python
import cv2
img = cv2.imread("image.jpg")
# 获取图像宽高
height, width = img.shape[:2]
# 旋转矩阵
M = cv2.getRotationMatrix2D((width/2, height/2), 90, 1)
# 旋转图像
rotated_img = cv2.warpAffine(img, M, (width, height))
# 显示图像
cv2.imshow("rotated image", rotated_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个例子中,我们首先使用`cv2.imread`函数加载一张图片,然后获取它的宽度和高度。接下来,我们使用`cv2.getRotationMatrix2D`函数生成一个旋转矩阵,该矩阵可以将图像旋转90度。最后,我们使用`cv2.warpAffine`函数来对图像进行旋转,并使用`cv2.imshow`函数来显示旋转后的图像。
相关问题
c++opencv图像预处理
C++与OpenCV结合可以进行各种图像处理和计算机视觉任务,例如图像的读取、显示、裁剪、旋转、缩放、滤波、二值化、边缘检测、特征提取等等。下面是一些常见的图像预处理技术:
1. 图像读取和显示:使用cv::imread()函数读取图像,使用cv::imshow()函数显示图像。
2. 图像缩放:使用cv::resize()函数对图像进行缩放处理。
3. 图像灰度化:使用cv::cvtColor()函数将图像从彩色转换为灰度图像。
4. 图像平滑:使用cv::blur()函数对图像进行平滑处理。
5. 边缘检测:使用cv::Canny()函数对图像进行边缘检测。
6. 二值化:使用cv::threshold()函数对图像进行二值化处理。
7. 直方图均衡化:使用cv::equalizeHist()函数对图像进行直方图均衡化处理。
这些预处理技术只是OpenCV中的冰山一角,还有很多其他的图像处理技术可以使用。如果你想深入了解OpenCV的图像处理功能,建议参考OpenCV官方文档或者相关书籍。
cpp opencv 图像旋转90度
在 OpenCV (C++版本) 中,图像旋转90度可以使用 `cv::rotate` 函数轻松完成。这个函数的基本语法如下:
```cpp
cv::Mat rotated_image;
cv::rotate(input_image, rotated_image, cv::ROTATE_90_CLOCKWISE);
```
这里,`input_image` 是你需要旋转的原始图像矩阵,`rotated_image` 是旋转后的结果,`cv::ROTATE_90_CLOCKWISE` 表示顺时针旋转90度。如果你想逆时针旋转,可以使用 `cv::ROTATE_90_COUNTERCLOCKWISE`。
这是一个简单的例子:
```cpp
#include <opencv2/opencv.hpp>
int main() {
// 加载图像
cv::Mat src = cv::imread("image.jpg");
if (!src.data) { // 检查加载是否成功
std::cout << "Could not open or find the image!" << std::endl;
return -1;
}
// 顺时针旋转90度
cv::Mat dst;
cv::rotate(src, dst, cv::ROTATE_90_CLOCKWISE);
// 保存旋转后的图像
cv::imwrite("rotated_image.jpg", dst);
return 0;
}
```
阅读全文