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. Java程序(类的抽象与封装)
  2. 标准CC++获取当前时间(毫秒级)
  3. Android测试中被测应用挂了怎么办?
  4. C# 中科学计数法转成正常值
  5. 监督学习无监督学习_无监督学习简介
  6. iOS KVO crash 自修复技术实现与原理解析
  7. 【jQuery笔记Part4】04-jQuery案例-轮播图
  8. 十分钟搞清字符集和字符编码
  9. 小样本学习(FSL):Few-shot Learning 综述【模型微调(Fine-tunning)、数据增强、迁移学习(Transfer Learning)】
  10. 什么是栈?栈的特点和应用场景
  11. [转]河北省生源地助学贷款流程及注意事项
  12. w7 声音图标不见了
  13. 拳皇觉醒服务器维护,拳魂觉醒活动什么时候开 服务器开区活动时间顺序
  14. 世界经典咖啡@配制方法
  15. 基于Matlab的载波同步建模与仿真(科斯塔斯环)
  16. MATLAB在动态经济学中的应用,MATLAB在动态经济学中的应用
  17. JVM JDK 和 JRE
  18. 云计算技术基础【6】
  19. 老电脑拯救计划——将机械盘的系统迁移到SSD
  20. 中国中医医院竞争力排行榜500强:绵竹市中医医院

热门文章

  1. 适应度函数及遗传操作
  2. linux centos 光盘修复,CentOS 系统修复
  3. NOIp2016纪录[那些我所追求的]
  4. 【Photoshop】证件照换底色
  5. ARM Cortex-M0+Kinetis L系列学习笔记_MKL25Z4.h
  6. 中职学校计算机课程标准,中等职业学校课程标准发布
  7. 【抖音视频去水印小程序开源】mosousuo—微信小程序下载抖音去水印视频
  8. appium inspector连接appium service
  9. Tampermonkey油猴插件——使用教程整理
  10. 快速傅里叶变换功率谱密度matlab_信号的频谱 频谱密度 功率谱密度 能量谱密度...