python - 在python opencv模块中编辑后保存同名图像
问题描述
在opencv上编辑后,我试图保存一个同名的图像。我可以用相同的名字保存。但我不能保存在不同的文件中。所以,这是我的代码:
import cv2
import numpy as np
import glob
filename = [img for img in glob.glob("./mypath_1/*.jpg")]
flist=sorted(filename)
images = []
path='./mypath_2/'
for image in flist:
img= cv2.imread(image)
alpha=2
beta=-420
img2=cv2.addWeighted(img,alpha,np.zeros(img.shape,img.dtype),0,beta)
hsv = cv2.cvtColor(img2, cv2.COLOR_BGR2HSV)
cv2.imwrite( path+image, hsv)
另外,我试过这个:cv2.imwrite( './mypath_2/'+image, hsv)
.
我不保存图像,并且此代码中没有消息错误。
有什么建议吗?
解决方案
import numpy as np
import cv2
import os
import sys
from pathlib import Path
if __name__ == "__main__":
#get alpha and beta values
alpha, beta =2, -420
# get directory path where the images are stored
image_dir = "/path/to/image read directory/"
# get directory path where you want to save the images
output_dir = "/path/to/image write directory/"
#iterate through all the files in the image directory
for _, _, image_names in os.walk(image_dir):
#iterate through all the files in the image_dir
for image_name in image_names:
# check for extension .jpg
if '.jpg' in image_name:
# get image read path(path should not contain spaces in them)
filepath = os.path.join(image_dir, image_name)
# get image write path
dstpath = os.path.join(output_dir, image_name)
print(filepath, dstpath)
# read the image
image = cv2.imread(filepath)
# do your processing
image2 = cv2.addWeighted(image, alpha,np.zeros_like(image),0,beta)
hsv = cv2.cvtColor(image2, cv2.COLOR_BGR2HSV)
# write the image in a different path with the same name
cv2.imwrite(dstpath, hsv)
print(image.shape, image2.shape, hsv.shape)
推荐阅读
- video-streaming - 将 EME 与 ClearKey 一起使用时的视频解密过程
- c++ - 命令行参数添加一个额外的参数
- ios - 没有部分的 SwiftUI 主列表可滚动标题视图?
- python - 在 Python 中使用多处理将数据存储在共享字典中
- android - 如何制作 android.media.Image 对象的副本?
- python - HCSR04 不使用标准固件与 python 一起工作
- c - 如何在 C 中打印表格而无需移动垂直线?
- python - 如何在 jupyter python 3 中分离数据
- c# - 在 Unity 中更改切换图像表单 C#
- python - 从 Pandas 中的子数据框列表创建子图