验证cv2.imwrite以及np.save的覆盖性、创建文件夹

该博客主要探讨了在不同场景下使用cv2.imwrite和np.save保存图片和数据的行为。实验内容包括:同一文件夹内多次调用imwrite是否会产生多个图片,跨文件夹imwrite操作,多次np.save同一个图片数据是否产生多个.np文件,以及不同文件夹内的np.save行为。实验旨在验证这两个函数的文件覆盖性和创建新文件夹的能力。

位置:f:/qyqt_practice/test/test_imwrite_npsave
1.在同一个文件夹内多次imwrite同一个图片,是否会写入多个图片
2.在不同文件夹内多从imwrote同一个图片,是否会写入多个图片

3.在同一个文件夹内多次np.save同一个图片数据,是否会保存多个.npy文件
4.在不同文件夹内多次np.save同一个图片数据,是否会保存多个.npy文件

运行前:
在这里插入图片描述

#这个Python文件是用来测试
# 1.在同一个文件夹内多次imwrite同一个图片,是否会写入多个图片
# 2.在不同文件夹内多从imwrote同一个图片,是否会写入多个图片
#
# 3.在同一个文件夹内多次np.save同一个图片数据,是否会保存多个.npy文件
# 4.在不同文件夹内多次np.save同一个图片数据,是否会保存多个.npy文件
import cv2
import numpy as np
import os

im = cv2
import cv2 import numpy as np import matplotlib.pyplot as plt # ---------------------- 核心配置(可修改)---------------------- input_path = "D:\\QQ.jpg" # 你的输入图片路径 save_path = "D:\\Image_Results\\" # 结果保存路径(自动创建文件夹) # -------------------------------------------------------------- # 创建保存文件夹存在则自动生成) import os os.makedirs(save_path, exist_ok=True) # 读取图像(灰度模式) img = cv2.imread(input_path, cv2.IMREAD_GRAYSCALE) if img is None: raise ValueError(f"无法读取图片,请检查路径:{input_path}") # 图像处理流程 _, img_binary = cv2.threshold(img, 80, 255, cv2.THRESH_BINARY) kernel = np.ones((3, 3), np.uint8) eroded = cv2.erode(img_binary, kernel, iterations=1) boundaries = cv2.subtract(img_binary, eroded) # 保存4张结果图(自动命名,避免覆盖) cv2.imwrite(f"{save_path}1_Original_Image.jpg", img) cv2.imwrite(f"{save_path}2_Binary_Image.jpg", img_binary) cv2.imwrite(f"{save_path}3_Eroded_Image.jpg", eroded) cv2.imwrite(f"{save_path}4_Boundaries_Image.jpg", boundaries) # 同时显示结果(方便即时查看) plt.figure(figsize=(16, 4)) plt.subplot(1, 4, 1), plt.imshow(img, cmap='gray'), plt.title('Original'), plt.xticks([]), plt.yticks([]) plt.subplot(1, 4, 2), plt.imshow(img_binary, cmap='gray'), plt.title('Binary'), plt.xticks([]), plt.yticks([]) plt.subplot(1, 4, 3), plt.imshow(eroded, cmap='gray'), plt.title('Eroded'), plt.xticks([]), plt.yticks([]) plt.subplot(1, 4, 4), plt.imshow(boundaries, cmap='gray'), plt.title('Boundaries'), plt.xticks([]), plt.yticks([]) plt.tight_layout(), plt.show() print(f"结果已保存到:{save_path}") print("保存文件清单:") print("1. 1_Original_Image.jpg(原始灰度图)") print("2. 2_Binary_Image.jpg(二值化图)") print("3. 3_Eroded_Image.jpg(腐蚀图)") print("4. 4_Boundaries_Image.jpg(边界提取图)")
11-07
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值