opencv 如何将图片输出为指定大小和格式
时间: 2024-04-16 07:26:24 浏览: 20
要将图片输出为指定大小和格式,可以使用OpenCV中的resize函数和imwrite函数。
先,使用resize函数调整图像大小。这个函数的参数包括原始图像、目标图像大小以及插值方法。插值方法可以是INTER_NEAREST、INTER_LINEAR、INTER_CUBIC等,根据需要选择合适的方法。
例如,将图像调整为指定的宽度和高度:
```python
import cv2
# 读取原始图像
image = cv2.imread('input.jpg')
# 指定目标图像大小
target_width = 800
target_height = 600
# 调整图像大小
resized_image = cv2.resize(image, (target_width, target_height), interpolation=cv2.INTER_LINEAR)
```
然后,使用imwrite函数将调整后的图像保存为指定格式的文件。这个函数的参数包括保存路径和文件名、调整后的图像。
例如,将调整后的图像保存为PNG格式:
```python
# 保存调整后的图像为PNG格式
cv2.imwrite('output.png', resized_image)
```
这样,就可以将图片输出为指定大小和格式了。
相关问题
opencv-python限制图片输出大小
要限制图片输出大小可以使用OpenCV-Python库中的resize()函数。以下是一个示例代码,可以将输入图像缩放到指定的输出大小并保存输出图像。
```python
import cv2
# 读入输入图像
img = cv2.imread('input_image.jpg')
# 设置输出图像大小
output_size = (800, 600)
# 调用resize()函数进行缩放
resized_img = cv2.resize(img, output_size)
# 保存输出图像
cv2.imwrite('output_image.jpg', resized_img)
```
在这个示例中,我们首先读取输入图像并使用元组`output_size`来指定输出图像的大小。然后,我们使用OpenCV的resize()函数将输入图像缩放为指定的输出大小。最后,我们使用imwrite()函数将输出图像保存到文件中。需要注意的是,如果指定的输出图像大小与原始图像的宽高比不同,那么输出图像可能会被裁剪或填充黑色边框。
获取图片宽高,若与指定宽高不同,改变图片大小为指定宽高并输出。使用OPENCV
可以使用OPENCV库中的resize函数来改变图片大小,代码如下:
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
void resizeImage(const char* filename, int width, int height) {
Mat image = imread(filename);
if (image.empty()) {
std::cout << "Failed to load image!" << std::endl;
return;
}
int imgWidth = image.cols;
int imgHeight = image.rows;
if (imgWidth != width || imgHeight != height) {
resize(image, image, Size(width, height));
}
imwrite("resized.jpg", image);
}
```
其中,filename是要处理的图片文件名,width和height是指定的宽高。如果图片的宽高与指定的宽高不同,就使用resize函数改变图片大小,并输出为resized.jpg。