[Python]更改图片底色
from PIL import Image
import os
import numpy as np
import timedef replace_color(img, src_clr, dst_clr):'''通过矩阵操作颜色替换程序:param img: 图像矩阵:param src_clr: 需要替换的颜色(r,g,b):param dst_clr: 目标颜色(r,g,b):return: 替换后的图像矩阵'''img_arr = np.asarray(img, dtype=np.double)#分离通道r_img = img_arr[:,:,0].copy()g_img = img_arr[:,:,1].copy()b_img = img_arr[:,:,2].copy()#编码img = r_img * 256 * 256 + g_img * 256 + b_imgsrc_color = src_clr[0] * 256 * 256 + src_clr[1] * 256 + src_clr[2]#索引并替换颜色r_img[img == src_color] = dst_clr[0]g_img[img == src_color] = dst_clr[1]b_img[img == src_color] = dst_clr[2]#合并通道dst_img = np.array([r_img, g_img, b_img], dtype=np.uint8)#将数据转换为图像数据(h,w,c)dst_img = dst_img.transpose(1,2,0)return dst_imgdef replace_color_tran(img, src_clr, dst_clr):''' 通过遍历颜色替换程序:param img: 图像矩阵:param src_clr: 需要替换的颜色(r,g,b):param dst_clr: 目标颜色(r,g,b):return: 替换后的图像矩阵'''img_arr = np.asarray(img, dtype=np.double)dst_arr = img_arr.copy()for i in range(img_arr.shape[1]): for j in range(img_arr.shape[0]):if (img_arr[j][i] == src_clr)[0] == True:dst_arr[j][i] = dst_clrreturn np.asarray(dst_arr, dtype=np.uint8)# 需要修改的文件
img = 'D:\\work\\learn\\service\\ps1.jpg'
img = Image.open(img).convert('RGB')
res_img = img.copy()
count = 20
matrix_time = 0
trans_time = 0for i in range(count):print(i)start = time.time()# 需要替换的颜色、替换成的颜色dst_img = replace_color(img, (255,252,248), (255,255,255))end = time.time()matrix_time += (end - start)'''start = time.time()dst_img = replace_color_tran(img, (255,252,248), (255,255,255))end = time.time()trans_time += (end - start)'''res_img = dst_imgres_img = Image.fromarray(res_img)
# 更改后保存的文件
res_img.save('4.jpg')print('矩阵操作花费时间:', matrix_time / count )
print('遍历操作花费时间:', trans_time / count )
[Python]更改图片底色相关推荐
- python 修改图片尺寸_用Python更改图片尺寸大小
1.PIL包推荐Pillow. 2.源码:#encoding=utf-8 #author: walker #date: 2014-05-15 #function: 更改图片尺寸大小 import os ...
- 如何用python更改图片的像素
'''用opencv和numpy库对图像进行像素的变换''' import cv2 import numpy as np#读取图像 img=cv2.imread('cat.jpg') #图像各像素增加 ...
- pil库修改图片大小_python 利用PIL库进行更改图片大小的操作
python 是可以利用PIL库进行更改图片大小的操作的,当然一般情况下是不需要的,但是在一些特殊的利用场合,是需要改变图片的灰度或是大小等的操作的,其实用python更改图片的大小还是蛮简单的,只需 ...
- python 修改图片尺寸_Python实现更改图片尺寸大小的方法(基于Pillow包)
本文实例讲述了Python实现更改图片尺寸大小的方法.分享给大家供大家参考,具体如下: 1.PIL包推荐Pillow. 2.源码: #encoding=utf-8 #author: walker #d ...
- powershell + python 批量更改图片大小
python也可以用来搜索到图片,但用powershell更方便简单 powershell图片搜索代码: Get-ChildItem -Path G:\ -Recurse| Where-Object ...
- python论文排版_论文图片处理小技巧~python更改pdf格式图片的宽和高
叶绿体基因组类的文章通常都会用OGDRAW来画圈图,我自己通常会保存为pdf格式,调整一些细节,然后在使用Adobe Acrobat Pro 另存为其他格式的图片.这个时候如果在设置里选择300像素/ ...
- python观察日志(part23)--更改图片尺寸并保存
学习笔记,仅供参考,有错必纠 更改图片尺寸并保存 image_path = "{}/k{}_max_time{}.jpg".format(file_path, k, max_tim ...
- python批量更改图片尺寸(保持长度和高度的长短关系)
要求:如果一个文件夹下有若干图片,例如有1000*2000的图片和2000*1000的图片若干,需要保持图片长度和高度的关系,但是要把图片尺寸规范. 一.读取文件夹下图片数量 首先将读取文件夹下的图片 ...
- python进行图片的定位切割_python3 实现对图片进行局部切割的方法
python3 实现对图片进行局部切割的方法 先拿个图片举例子,比如说截取途中方框内的图片: # 导入相关的库 from PIL import Image # 打开一张图 img = Image.op ...
- python图片转文字_【收藏】图片转成文字的方法总结,python批量图片转文字信息参考源码...
在日常办公或者学习中,往往存在这样一个工作场景,比如,"老王,我这里有一张图片,你把里面的文字信息给我整理出来",都2021年了,你真的还在手敲图片文字信息么?那么还不赶紧收藏这篇 ...
最新文章
- mysql一: 登陆
- HDS:转型关键还是私有云
- EasyUI Numberbox 数字框(限制仅输入数字)
- KlayGE 4.4中渲染的改进(五):OpenGL 4.4和OpenGLES 3
- html盒子模型子元素怎么水平占满父元素_CSS盒子模型、溢出处理、浮动、高度坍塌问题...
- JNDI学习总结(2)——JNDI数据源的配置
- 安装Jaspersoft Studio
- 微信小程序实现微信登录详解(JAVA后台)
- Unity 5.4 公开测试版发布:增强的视觉效果,更佳的性能表现
- html显示千分位及小数位,使用CSS格式化数字(小数位,千位分隔符等)
- OSChina 周四乱弹 ——小小编辑教你装逼斗气
- java万年历系统的设计,基于安卓Android平台万年历系统设计与实现
- 雷军推红米Redmi独立品牌喊话友商:生死看淡 不服就干
- 排障集锦:九九八十一难之第十八难!-----System has not been booted with systemd as init system (PID 1). Can‘t operat
- [记录] android源码下载编译
- 一文读懂JWT,JWS,JWE
- 在VS中编写Qt5涉及到的一点字符串问题
- 大学三年级(yuan)
- vlc在Ubuntu下的自动安装和手动安装
- 滑动平均滤波器与CIC滤波器