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]更改图片底色相关推荐

  1. python 修改图片尺寸_用Python更改图片尺寸大小

    1.PIL包推荐Pillow. 2.源码:#encoding=utf-8 #author: walker #date: 2014-05-15 #function: 更改图片尺寸大小 import os ...

  2. 如何用python更改图片的像素

    '''用opencv和numpy库对图像进行像素的变换''' import cv2 import numpy as np#读取图像 img=cv2.imread('cat.jpg') #图像各像素增加 ...

  3. pil库修改图片大小_python 利用PIL库进行更改图片大小的操作

    python 是可以利用PIL库进行更改图片大小的操作的,当然一般情况下是不需要的,但是在一些特殊的利用场合,是需要改变图片的灰度或是大小等的操作的,其实用python更改图片的大小还是蛮简单的,只需 ...

  4. python 修改图片尺寸_Python实现更改图片尺寸大小的方法(基于Pillow包)

    本文实例讲述了Python实现更改图片尺寸大小的方法.分享给大家供大家参考,具体如下: 1.PIL包推荐Pillow. 2.源码: #encoding=utf-8 #author: walker #d ...

  5. powershell + python 批量更改图片大小

    python也可以用来搜索到图片,但用powershell更方便简单 powershell图片搜索代码: Get-ChildItem -Path G:\ -Recurse| Where-Object ...

  6. python论文排版_论文图片处理小技巧~python更改pdf格式图片的宽和高

    叶绿体基因组类的文章通常都会用OGDRAW来画圈图,我自己通常会保存为pdf格式,调整一些细节,然后在使用Adobe Acrobat Pro 另存为其他格式的图片.这个时候如果在设置里选择300像素/ ...

  7. python观察日志(part23)--更改图片尺寸并保存

    学习笔记,仅供参考,有错必纠 更改图片尺寸并保存 image_path = "{}/k{}_max_time{}.jpg".format(file_path, k, max_tim ...

  8. python批量更改图片尺寸(保持长度和高度的长短关系)

    要求:如果一个文件夹下有若干图片,例如有1000*2000的图片和2000*1000的图片若干,需要保持图片长度和高度的关系,但是要把图片尺寸规范. 一.读取文件夹下图片数量 首先将读取文件夹下的图片 ...

  9. python进行图片的定位切割_python3 实现对图片进行局部切割的方法

    python3 实现对图片进行局部切割的方法 先拿个图片举例子,比如说截取途中方框内的图片: # 导入相关的库 from PIL import Image # 打开一张图 img = Image.op ...

  10. python图片转文字_【收藏】图片转成文字的方法总结,python批量图片转文字信息参考源码...

    在日常办公或者学习中,往往存在这样一个工作场景,比如,"老王,我这里有一张图片,你把里面的文字信息给我整理出来",都2021年了,你真的还在手敲图片文字信息么?那么还不赶紧收藏这篇 ...

最新文章

  1. mysql一: 登陆
  2. HDS:转型关键还是私有云
  3. EasyUI Numberbox 数字框(限制仅输入数字)
  4. KlayGE 4.4中渲染的改进(五):OpenGL 4.4和OpenGLES 3
  5. html盒子模型子元素怎么水平占满父元素_CSS盒子模型、溢出处理、浮动、高度坍塌问题...
  6. JNDI学习总结(2)——JNDI数据源的配置
  7. 安装Jaspersoft Studio
  8. 微信小程序实现微信登录详解(JAVA后台)
  9. Unity 5.4 公开测试版发布:增强的视觉效果,更佳的性能表现
  10. html显示千分位及小数位,使用CSS格式化数字(小数位,千位分隔符等)
  11. OSChina 周四乱弹 ——小小编辑教你装逼斗气
  12. java万年历系统的设计,基于安卓Android平台万年历系统设计与实现
  13. 雷军推红米Redmi独立品牌喊话友商:生死看淡 不服就干
  14. 排障集锦:九九八十一难之第十八难!-----System has not been booted with systemd as init system (PID 1). Can‘t operat
  15. [记录] android源码下载编译
  16. 一文读懂JWT,JWS,JWE
  17. 在VS中编写Qt5涉及到的一点字符串问题
  18. 大学三年级(yuan)
  19. vlc在Ubuntu下的自动安装和手动安装
  20. 滑动平均滤波器与CIC滤波器

热门文章

  1. 计算机矩阵入门(eigen)0XC000041D
  2. 利用 QTcpSocket 实现的进程间通信
  3. C语言——基础链表详解
  4. KMeans算法流程
  5. php 微信 语音,【微信JSSDK】PHP版微信录音文件下载
  6. 开启电脑卓越性能模式
  7. modelica语言学习心得
  8. Java批量png转jpg图片格式
  9. python 加密文本_Python文件或文本加密(4种方法)
  10. 5.WireShark学习-WireShark中的时间显示