gpt4 book ai didi

c++ - 如何使所有图像大小相同并将它们写入一个文件夹

转载 作者:行者123 更新时间:2023-12-03 12:51:11 24 4
gpt4 key购买 nike

我正在尝试将不同文件夹中的不同尺寸的图像转换为宽度和高度中定义的相同尺寸,并将它们保存在不同的文件夹中或替换它们,我使用函数cv::resize ,当然 imwrite 可以用于保存它们,但它对我不起作用,因为它显示了调整大小参数中的错误。

int count = 0;
int width = 144;
int height = 33;
vector<string>::const_iterator i;
string Dir;
for (i = all_names.begin(); i != all_names.end(); ++i)
{
Dir=( (count < files.size() ) ? YourImagesDirectory_2 : YourImagesDirectory_3);

Mat row_img = cv::imread( Dir +*i, 0 );

cv::resize(row_img , width , height);
imwrite( "D:\\TestData\\img_resize.jpg", img_resize );

++count;
}

调整此函数的大小后:

imwrite( "D:\\TestData\\img_resize.jpg", img_resize );

仅将一张图像保存到我的文件夹 test 中,我希望将所有图像都保存在我的文件夹中

最佳答案

以下是如何 resize 的示例图像:

Mat img = imread("C:\\foo.bmp");
Mat img_resize;
resize(img, img_resize, Size(144, 33));

编辑:

假设您有几张图像,名为 image001.jpgimage002.jpgimage003.jpgimage004.jpg image005.jpg...,并希望在调整大小后保存它们。希望下面的代码能够解决这个问题。

#include <cv.h>
#include <highgui.h>
using namespace cv;

char pathLoading[255];
char pathSaving[255];
char num[10];
char jpg[10] = ".jpg";
int counter = 1;

int main(int argc, char** argv) {
while (1) {
if (counter < 6) {
// To load 5 images
strcpy(pathLoading, "c:\\image");
sprintf(num, "%03i", counter);
strcat(pathLoading, num);
strcat(pathLoading, jpg);
Mat image = imread(pathLoading);
Mat image_resize;
resize(image, image_resize, Size(144, 33));
// To save 5 images
strcpy(pathSaving, "c:\\image_resize");
sprintf(num, "%03i", counter);
strcat(pathSaving, num);
strcat(pathSaving, jpg);
imwrite(pathSaving, image_resize);
counter++;
}
}
return 0;
}

关于c++ - 如何使所有图像大小相同并将它们写入一个文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18683924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com