opencv-python环境安装:https://www.cnblogs.com/technicist/p/17138657.html

案例代码(批量压缩图像分辨率为原来的一半,例如2400*1398 可压缩至1200*699):

注意:处理后的图像会保存到原来的目录下(替换掉原来的图像)

import cv2
import os
import sys# PATH = r'/root/autodl-tmp/MySwin-Unet/data/' # 这个路径只需写到train和val文件夹即可。文件夹下的图片程序会自动帮你打开
PATH = r'D:\ProgramFiles\libwebp\libwebp-1.2.1-windows-x64\bin\png\Help_3840_1080\mipmap-ldrtl-hdpi' def resizeImage(file,NoResize):
# image = cv2.imread(file, cv2.IMREAD_COLOR)
image = cv2.imread(file, cv2.IMREAD_UNCHANGED) #读入完整图片,包括alpha通道 # 如果type(image) == 'NoneType',会报错,导致程序中断,所以这里先跳过这些图片,
# 并记录下来,结束程序后手动修改(删除) if image is None:
NoResize += [str(file)]
else:
width = int(image.shape[1]/2)
height = int(image.shape[0]/2)
print("宽度:"+str(width))
print("高度:"+str(height))
resizeImg = cv2.resize(image, (width, height)) # 这里改为自己想要的分辨率 cv2.imwrite(file, resizeImg)
cv2.waitKey(100) if __name__ == "__main__":
NoResize = [] # 记录没被修改的图片
total = 0 for childPATH in os.listdir(PATH):
# 子文件路径
childPATH = PATH + '\\' + str(childPATH)
print(childPATH)
total+=1
resizeImage(childPATH,NoResize)
print("总数量:" + str(total))
print('------修改图片大小全部完成❥(^_-)')

效果:

(1)原图像的分辨率:

(2)处理后的分辨率:

(3)批量压缩:

坑1:压缩出来的图像,透明度全为1,导致图标不清晰,效果图如下:

问题分析:首次读取图像时,只读取了3个通道(R、G、B),漏读了透明度通道;设置读取4通道R、G、B + alpha通道即可

效果图如下:

opencv-python 批量更改图像分辨率并且保留图像原有的透明度的更多相关文章

  1. 【图像处理】OpenCV+Python图像处理入门教程(七)图像形态学操作

    图像形态学主要从图像内提取分量信息,该分量信息通常对表达图像的特征具有重要意义.例如,在车牌号码识别中,能够使用形态学计算其重要特征信息,在进行识别时,只需对这些特征信息运算即可.图像形态学在目标视觉 ...

  2. Python批量更改文件名

    一.问题在处理文件或者一些其他信息的时候我们需要更改文件名,那么我们可以写一个程序来修改这些文件名,以减少我们重复的做一件事. 二.解决本次使用的Python,利用的是Python中的OS模块,具体操 ...

  3. python 批量更改文件名

    工作中遇到一种情况,就是市场部那边经常发过来一些apk的包 但是要求更改名字,文件太多了,没办法,只有想办法了,还好命名都是有规则的 比如说 YZLoan-gdtyyb-V2.23.apk------ ...

  4. 使用python批量更改文件

    最近整理之前学爬虫存储的文件,发现有很多文件名有重复,而我有一点点强迫症,不想文件名重复,就写了一个Python代码来解决文件名重复问题 import os import random import ...

  5. openCV—Python(2)—— 载入、显示和保存图像

    一.函数简单介绍 1.imread-读取图像 函数原型:imread(filename, flags=None) filename:读取的图像路径名:比如:"H:\img\lena.jpg& ...

  6. OpenCV2类批量处理文件夹及文件图像 及批量处理后保存到txt文件

    //采用windows控制台实现计算文件夹中对象总数以及批量读取对象 //#include <afx.h> //和windows.h是一样的作用 #include <opencv2/ ...

  7. Halcon一日一练:图像分辨率与像素

    1.图像像素: 像素是指由图像的小方格即所谓的像素(pixel)组成的,这些小方块都有一个明确的位置和被分配的色彩数值,而这些一小方格的颜色和位置就决定该图像所呈现出来的样子.像素是构成图像的基本单元 ...

  8. Opencv python图像处理-图像相似度计算

    一.相关概念 一般我们人区分谁是谁,给物品分类,都是通过各种特征去辨别的,比如黑长直.大白腿.樱桃唇.瓜子脸.王麻子脸上有麻子,隔壁老王和儿子很像,但是儿子下巴涨了一颗痣和他妈一模一样,让你确定这是你 ...

  9. 利用 Python 进行批量更改文件后缀

    利用 Python 进行批量更改文件后缀 代码 import os files = os.listdir('.') for file_name in files: portion = os.path. ...

  10. Python用Pillow(PIL)进行简单的图像操作

    Python用Pillow(PIL)进行简单的图像操作 颜色与RGBA值 计算机通常将图像表示为RGB值,或者再加上alpha值(通透度,透明度),称为RGBA值.在Pillow中,RGBA的值表示为 ...

随机推荐

  1. 多种方法实现单例模式 pickle模块

    目录 单例模式 类方法@classmethod实现 元类实现 模块实现 装饰器实现 双下call.反射实现 pickle序列化模块 单例模式 比如系统调用打印机,不管你要打印几次,都是调用同一个打印机 ...

  2. python基础之hashilb模块、logging模块

    hashlib加密模块 1.何为加密 将文明数据处理成密文数据 让人无法看懂 2.为什么要加密 保证数据的安全,防止密码泄露 3.如何判断数据是否加密 密文数据的表现形式一般都是一串没有规则的字符串( ...

  3. VMware虚拟机开机黑屏解决方法

    挂起时可以看到显示,但是开机就黑屏 解决方法: 命令提示符,鼠标右键点击"命令提示符",弹出菜单之后选择"以管理员身份运行" 在命令提示符窗口中输入" ...

  4. [攻防世界][江苏工匠杯]unseping

    打开靶机对应的url 上来就是代码审计 <?php highlight_file(__FILE__); class ease{ private $method; private $args; f ...

  5. uniapp微信小程序 下拉刷新(上拉请求下一页数据)

    <template>标签中: <view class="" v-if="daShow==1"> <view class=" ...

  6. 04-CURD

    Insert @Test//测试插入 public void insertTest(){ User user = new User(); user.setName("wsk"); ...

  7. 什么是Rabbitmq消息队列? (安装Rabbitmq,通过Rabbitmq实现RPC全面了解,从入门到精通)

    目录 Rabbitmq 一: 消息队列介绍 1.介绍 2.MQ解决了什么问题 1.应用的解耦 2.流量削峰 3.消息分发(发布订阅: 观察者模式) 4.异步消息(celery就是对消息队列的封装) 3 ...

  8. sqli-laba靶场搭建

    windows下安装sqli-laba 环境:windows10 安装phpstudy 1.下载并安装小皮面板phpstudy(傻瓜式安装) https://www.xp.cn/windows-pan ...

  9. [数学理论] NP问题解释

    转载自http://m.blog.csdn.net/csshuke/article/details/74909562 希望通过这篇文章可以不仅让计算机相关专业的人可以看懂和区分什么是P类问题什么是NP ...

  10. K8s 为什么会抛弃 docker

    为什么 K8s 会抛弃 docker 前言 CRI containerd 参考 为什么 K8s 会抛弃 docker 前言 在这之前先来了解下,k8s 是如何和 docker 进行交互的. CRI k ...