Qt实现对图像文件的放大、缩小、旋转、翻转、反色、灰度化、裁剪等功能
时间: 2023-11-20 18:07:54 浏览: 102
以下是使用Qt实现对图像文件的放大、缩小、旋转、翻转、反色、灰度化、裁剪等功能的示例代码:
```python
from PyQt5.QtGui import QImage, QPixmap, QColor
from PyQt5.QtCore import Qt, QRect
# 加载图像文件
image = QImage("image.jpg")
# 缩放图像
scaled_image = image.scaled(100, 100, Qt.KeepAspectRatio)
# 旋转图像
rotated_image = image.transformed(QTransform().rotate(90))
# 翻转图像
flipped_image = image.mirrored(True, False)
# 反色
inverted_image = image.invertedPixels()
# 灰度化
gray_image = image.convertToFormat(QImage.Format_Grayscale8)
# 裁剪图像
cropped_image = image.copy(QRect(10, 10, 50, 50))
# 显示图像
pixmap = QPixmap.fromImage(image)
label.setPixmap(pixmap)
```
相关问题
C++实现对图像文件的放大、缩小、旋转、翻转、反色、灰度化、裁剪等功能
以下是C++实现对图像文件的放大、缩小、旋转、翻转、反色、灰度化、裁剪等功能的示例代码:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 读取图像文件
Mat img = imread("test.jpg");
// 放大图像
Mat img_zoom;
resize(img, img_zoom, Size(img.cols * 2, img.rows * 2));
// 缩小图像
Mat img_shrink;
resize(img, img_shrink, Size(img.cols / 2, img.rows / 2));
// 旋转图像
Mat img_rotate;
Point2f center(img.cols / 2, img.rows / 2);
Mat M = getRotationMatrix2D(center, 45, 1);
warpAffine(img, img_rotate, M, img.size());
// 翻转图像
Mat img_flip;
flip(img, img_flip, 1);
// 反色处理
Mat img_invert;
bitwise_not(img, img_invert);
// 灰度化处理
Mat img_gray;
cvtColor(img, img_gray, COLOR_BGR2GRAY);
// 裁剪图像
Rect rect(100, 100, 200, 200);
Mat img_crop = img(rect);
// 显示图像
imshow("Original Image", img);
imshow("Zoom Image", img_zoom);
imshow("Shrink Image", img_shrink);
imshow("Rotate Image", img_rotate);
imshow("Flip Image", img_flip);
imshow("Invert Image", img_invert);
imshow("Gray Image", img_gray);
imshow("Crop Image", img_crop);
waitKey(0);
return 0;
}
```
如何用C++实现对图像文件的放大、缩小、旋转、翻转、反色、灰度化、裁剪等功能
以下是使用OpenCV库实现C++对图像文件的放大、缩小、旋转、翻转、反色、灰度化、裁剪等功能的示例代码:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 读取图像文件
Mat img = imread("test.jpg");
// 放大图像
Mat img_zoom;
resize(img, img_zoom, Size(img.cols * 2, img.rows * 2));
// 缩小图像
Mat img_shrink;
resize(img, img_shrink, Size(img.cols / 2, img.rows / 2));
// 旋转图像
Mat img_rotate;
Point2f center(img.cols / 2, img.rows / 2);
Mat M = getRotationMatrix2D(center, 45, 1);
warpAffine(img, img_rotate, M, img.size());
// 翻转图像
Mat img_flip;
flip(img, img_flip, 1);
// 反色处理
Mat img_invert;
bitwise_not(img, img_invert);
// 灰度化处理
Mat img_gray;
cvtColor(img, img_gray, COLOR_BGR2GRAY);
// 裁剪图像
Rect roi(100, 100, 200, 200);
Mat img_crop = img(roi);
// 显示图像
imshow("Original Image", img);
imshow("Zoom Image", img_zoom);
imshow("Shrink Image", img_shrink);
imshow("Rotate Image", img_rotate);
imshow("Flip Image", img_flip);
imshow("Invert Image", img_invert);
imshow("Gray Image", img_gray);
imshow("Crop Image", img_crop);
waitKey(0);
return 0;
}
```