用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中使用strip()方法删除字符串中空格的教程
May 20 Python
Django imgareaselect手动剪切头像实现方法
May 26 Python
python检查字符串是否是正确ISBN的方法
Jul 11 Python
星球大战与Python之间的那些事
Jan 07 Python
numpy排序与集合运算用法示例
Dec 15 Python
Python实现GUI学生信息管理系统
Apr 05 Python
Python实现求数列和的方法示例
Jan 12 Python
python 将字符串转换成字典dict的各种方式总结
Mar 23 Python
python3库numpy数组属性的查看方法
Apr 17 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
Jun 26 Python
Python Gitlab Api 使用方法
Aug 28 Python
Python获取一个用户名的组ID过程解析
Sep 03 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
整理的9个实用的PHP库简介和下载
2010/11/09 PHP
Windows 下的 PHP-PEAR 安装方法
2010/11/20 PHP
PHP遍历数组的几种方法
2012/03/22 PHP
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
通过php删除xml文档内容的方法
2015/01/23 PHP
php+xml实现在线英文词典之添加词条的方法
2015/01/23 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
2016/06/24 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
javaScript 简单验证代码(用户名,密码,邮箱)
2009/09/28 Javascript
理解JavaScript的prototype属性
2012/02/11 Javascript
打印json对象的内容及JSON.stringify函数应用
2013/03/29 Javascript
高效率JavaScript编写技巧整理
2013/08/23 Javascript
javascript页面动态显示时间变化示例代码
2013/12/18 Javascript
js导出txt示例代码
2014/01/14 Javascript
Egret引擎开发指南之运行项目
2014/09/03 Javascript
基于jQuery实现的QQ表情插件
2015/08/25 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
javascript帧动画(实例讲解)
2017/09/02 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
2017/10/19 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
微信js-sdk 录音功能的示例代码
2019/11/01 Javascript
Postman动态获取返回值过程详解
2020/06/30 Javascript
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
Python使用filetype精确判断文件类型
2017/07/02 Python
python reduce 函数使用详解
2017/12/05 Python
解决python爬虫中有中文的url问题
2018/05/11 Python
python实现ip地址的包含关系判断
2020/02/07 Python
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
涂鸦板简单实现 Html5编写属于自己的画画板
2016/07/05 HTML / CSS
摩托车和ATV零件、配件和服装的首选在线零售商:MotoSport
2017/12/22 全球购物
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
公司股东合作协议书
2014/09/14 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
难以忽视的真相观后感
2015/06/05 职场文书
openGauss数据库JDBC环境连接配置的详细过程(Eclipse)
2022/06/01 Java/Android