Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何在Opencv Python中将多个图像保存到目标文件夹_Python 3.x_Opencv - Fatal编程技术网

Python 3.x 如何在Opencv Python中将多个图像保存到目标文件夹

Python 3.x 如何在Opencv Python中将多个图像保存到目标文件夹,python-3.x,opencv,Python 3.x,Opencv,我在一个图像处理项目中工作,我已经创建了用于裁剪和调整大小的代码,但是我不知道如何将多个图像保存到目标文件夹中 这是我的密码 from os import listdir from os.path import isfile, join import numpy import cv2 filepath = 'DataMentah/akMundur' onlyfiles = [f for f in listdir(filepath) if isfile(join(filepath))] imag

我在一个图像处理项目中工作,我已经创建了用于裁剪和调整大小的代码,但是我不知道如何将多个图像保存到目标文件夹中

这是我的密码

from os import listdir
from os.path import isfile, join
import numpy
import cv2

filepath = 'DataMentah/akMundur'
onlyfiles = [f for f in listdir(filepath) if isfile(join(filepath))]
images = numpy.empty(len(onlyfiles), dtype = object)
for n in range(0, len(onlyfiles)):
    images[n] = cv2.imread(join(filepath, onlyfiles[n]))
    crp_img = images[0:240, 0:80]
    h = 224
    w = 224
    dimension = (h, w)
    rsz_image = cv2.resize(crp_img, dimension, interpolation = CV2.INTER_AREA)
    #saveimage to targeted folder

您只需编写图像,并将循环编号作为名称的一部分:

for n in range(0, len(onlyfiles)):
    # other things you need to do snipped
    cv2.imwrite(f'/path/to/destination/image_{n}.png',image)
这样你就可以得到它的有序名称。您可以使用迷你格式语言格式化
n
,如下所示:

for n in range(5):
    print(f"filename_{n:04}.png")   # format as 4 digits with leading zeros
输出:

filename_0000.png
filename_0001.png
filename_0002.png
filename_0003.png
filename_0004.png 

有关更多格式选项,请参阅。

您只需编写图像并将循环编号作为名称的一部分:

for n in range(0, len(onlyfiles)):
    # other things you need to do snipped
    cv2.imwrite(f'/path/to/destination/image_{n}.png',image)
这样你就可以得到它的有序名称。您可以使用迷你格式语言格式化
n
,如下所示:

for n in range(5):
    print(f"filename_{n:04}.png")   # format as 4 digits with leading zeros
输出:

filename_0000.png
filename_0001.png
filename_0002.png
filename_0003.png
filename_0004.png 

有关更多格式选项,请参阅。

在循环保存rsz_图像时使用cv2.imwrite()
cv2.imwrite(“result{0}.png.format(n),rsz_image)
@fmw42如何添加目标保存文件夹的路径?crp_img=images[0:240,0:80]是否适合您?这似乎很奇怪
images
是一个
len(仅限文件)
大小的图像数组,每个图像是一个x*y*3或4numpy像素数组。你认为什么是`?这不是引用一个图像…@PatrickArtner我认为这是我的逻辑错误,我试图一次裁剪并调整文件夹中所有图像的大小。我知道读取文件代码可以工作,但不能用于多个图像的裁剪和调整大小代码,所以我应该在这里修复什么?为初学者发布错误消息。。。nand尝试类似于
crp_img=images[n][0:240,0:80]
crp_img=images[n,0:240,0:80]
使用cv2.imwrite()循环保存rsz_图像
cv2.imwrite(“result{0}.png.format(n),rsz_image)
@fmw42如何添加目标保存文件夹的路径?crp_img=images[0:240,0:80]是否适合您?这似乎很奇怪
images
是一个
len(仅限文件)
大小的图像数组,每个图像是一个x*y*3或4numpy像素数组。你认为什么是`?这不是引用一个图像…@PatrickArtner我认为这是我的逻辑错误,我试图一次裁剪并调整文件夹中所有图像的大小。我知道读取文件代码可以工作,但不能用于多个图像的裁剪和调整大小代码,所以我应该在这里修复什么?为初学者发布错误消息。。。nand请尝试类似于
crp\u img=images[n][0:240,0:80]
crp\u img=images[n,0:240,0:80]
我已经尝试了您的解决方案,但图像仍然没有为范围(0,len(onlyfiles)):images[n]=cv2.imread(加入(文件路径,onlyfiles[n])crp\u img=images[0:240,0:80]h=224 w=224维=(h,w)rsz_image=cv2.resize(crp_img,dimension,interpolation=cv2.INTER_AREA)cv2.imwrite(f'datalathis/akMundur/image_{n}.jpg',rsz_image)代码应该是这样的吧?我已经尝试了你的解决方案,但是图像仍然没有为范围(0,len(onlyfiles)):images[n]=cv2.imread(join(filepath,onlyfiles[n]))crp_img=images[0:240,0:80]h=224 w=224 dimension=(h,w)rsz_image=cv2.resize(crp_img,dimension,interpolation=cv2.INTER_AREA)cv2.imwrite(f'datalathis/akMundur/image{n}.jpg',rsz_image)代码应该是这样的,对吗?