用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)


Posted in Python onJune 04, 2020

我就废话不多说了,大家还是直接看代码吧!

import PIL.Image
import numpy
import os
import shutil
def sum_right(path):
 img = PIL.Image.open(path)
 array = numpy.array(img)
 num = array.sum(axis=0)
 print(type(num))
 res_left = 0
 res_right = 0
 for i in range(256,512):
  res_right += num[i]
 print(res_right)

if __name__ == '__main__':
 dir2 = r"C:\Users\Howsome\Desktop\tst"
 dir1 = r"C:\Users\Howsome\Desktop\AB"
 names = os.listdir(dir1)
 n = len(names)
 print("文件数量",n)
 res = 0
 average_5 = 25565356
 average_25 = 26409377
 average_5_right = 10006019
 #average_tmp = (average_25+average_5)//2
 count = 0
 #show(os.path.join(dir1, "uni4F6C.png"))
 for i in range(n):
  #取图片
  img = PIL.Image.open(os.path.join(dir1,names[i]))
  file = os.path.join(dir1,names[i])
  rmfile = os.path.join(dir2,names[i])
  array = numpy.array(img)
  num = array.sum(axis=0)
  res_right = 0
  for i in range(256, 512):
   res_right += num[i]
  average_5_right += res_right/n

  if res_right > average_5_right:
    shutil.copyfile(file, rmfile)
    os.remove(file)
    count += 1
 print(average_5_right)
 print(count)

补充知识:python遍历灰度图像像素方法总结

啥也不说了,看代码吧!

import numpy as np
import matplotlib.pyplot as plt
import cv2
import time

img = cv2.imread('lena.jpg',0)

# 以遍历每个像素取反为例

# 方法1
t1 = time.time()
img1 = np.copy(img)
rows,cols = img1.shape[:2]
for row in range(rows):
 for col in range(cols):
  img[row,col] = 255 - img[row,col]
t2 = time.time()
print('方法1所需时间:',t2-t1)

# 方法2
t3 = time.time()
img2 = np.copy(img)
rows,cols = img2.shape[:2]
img2 = img2.reshape(rows*cols)
# print(img2)
for i in range(rows*cols):
 img2[i] = 255-img2[i]
img2 = img2.reshape(rows,cols)
# print(img2)
t4 = time.time()
print('方法2所需时间:',t4-t3)

# 方法3
t5 = time.time()
img3 = np.copy(img)
# 使用多维迭代生成器
for (x,y), pixel in np.ndenumerate(img3):
 img3[x,y] = 255-pixel
t6 = time.time()
print('方法3所需时间:',t6-t5)

测试结果:

方法1所需时间: 0.14431977272033691
方法2所需时间: 0.13863205909729004
方法3所需时间: 0.24196243286132812

以上这篇用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python MySQLdb模块连接操作mysql数据库实例
Apr 08 Python
python使用post提交数据到远程url的方法
Apr 29 Python
python实现在控制台输入密码不显示的方法
Jul 02 Python
Python应用03 使用PyQT制作视频播放器实例
Dec 07 Python
详解Python核心编程中的浅拷贝与深拷贝
Jan 07 Python
TensorFlow模型保存和提取的方法
Mar 08 Python
python使用openpyxl库修改excel表格数据方法
May 03 Python
python使用插值法画出平滑曲线
Dec 15 Python
python3模拟实现xshell远程执行liunx命令的方法
Jul 12 Python
Python从列表推导到zip()函数的5种技巧总结
Oct 23 Python
Python关于拓扑排序知识点讲解
Jan 04 Python
python 如何用urllib与服务端交互(发送和接收数据)
Mar 04 Python
Python flask框架实现浏览器点击自定义跳转页面
Jun 04 #Python
python 图像判断,清晰度(明暗),彩色与黑白实例
Jun 04 #Python
完美解决ARIMA模型中plot_acf画不出图的问题
Jun 04 #Python
Python使用Matlab命令过程解析
Jun 04 #Python
Python flask框架端口失效解决方案
Jun 04 #Python
Python实现列表中非负数保留,负数转化为指定的数值方式
Jun 04 #Python
Python新手学习装饰器
Jun 04 #Python
You might like
一个ubbcode的函数,速度很快.
2006/10/09 PHP
PHP与SQL注入攻击[一]
2007/04/17 PHP
PHP 中检查或过滤IP地址的实现代码
2011/11/27 PHP
windows平台中配置nginx+php环境
2015/12/06 PHP
深入解析PHP中SESSION反序列化机制
2017/03/01 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
2019/06/12 PHP
Gambit vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
js jquery验证银行卡号信息正则学习
2013/01/21 Javascript
JavaScript新窗口与子窗口传值详解
2014/02/11 Javascript
JavaScript中实现异步编程模式的4种方法
2014/09/24 Javascript
jQuery中slideUp 和 slideDown 的点击事件
2015/02/26 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
Angular实现点击按钮控制隐藏和显示功能示例
2017/12/29 Javascript
Vue项目组件化工程开发实践方案
2018/01/09 Javascript
Python编程入门的一些基本知识
2015/05/13 Python
python机器学习库常用汇总
2017/11/15 Python
Python3之读取连接过的网络并定位的方法
2018/04/22 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
简单了解Django ORM常用字段类型及参数配置
2020/01/07 Python
Python原始套接字编程实例解析
2020/01/29 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
python如何更新包
2020/06/11 Python
HTML5+CSS3模仿优酷视频截图功能示例
2017/01/05 HTML / CSS
武汉瑞得软件笔试题
2015/10/27 面试题
如何写好自荐信
2014/04/07 职场文书
2014年清明节网上祭英烈寄语
2014/04/09 职场文书
2015年党支部公开承诺书
2015/01/22 职场文书
叶问观后感
2015/06/15 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书
2016猴年春节慰问信
2015/11/30 职场文书
Html5通过数据流方式播放视频的实现
2021/04/27 HTML / CSS
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis
使用MybatisPlus打印sql语句
2022/04/22 SQL Server
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android