python黑白像素面积占比计算(脏污、白点等)
系列文章目录
文章目录
- 系列文章目录
- 前言
- 一、专词解释
- 二、效果实现
- 1.源码一
- 2.源码二
- 三、效果确认
- 总结
前言
一、专词解释
1、二值化:图像二值化就是将图像上的像素点的灰度值设置为0或255,即整个图像呈现出黑白效果;
2、cv2:CV2指的是OpenCV2,OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
3、Numpy:这个库是 Python 数据分析的基础,numpy没有使用python本身的数组机制,而是提供了ndarray对象,该对象不仅能方便地存取数组,而且拥有丰富的数组计算函数。
二、效果实现
1.源码一
代码如下(无图形界面示例):
import cv2
import numpy as npimg=cv2.imread('dian3.png',cv2.IMREAD_GRAYSCALE) #灰度图像
x,y= img.shape
print(img.shape)#遍历灰度图,阈值大于150的全变白
for i in range(x):for j in range(y):if img[i,j]>150:img[i,j]=255else:img[i,j]=0
black = 0
white = 0
#遍历二值图,为0则black+1,否则white+1
for i in range(x):for j in range(y):if img[i,j]==0:black+=1else:white+=1
print("白色个数:",white)
print("黑色个数:",black)
rate1 = white/(x*y)
rate2 = black/(x*y)
#round()第二个值为保留几位有效小数。
print("白色占比:", round(rate1*100,2),'%')
print("黑色占比:", round(rate2*100,2),'%')
2.源码二
代码如下(加入选择框示例@author: DeepCold):
import tkinter
from tkinter import filedialog
import tkinter.font as tf
from PIL import Imagedef upload_file():# askopenfilename 上传1个;askopenfilenames上传多个result_text.delete(1.0, 'end')black_pixel = 0white_pixel = 0select_file = tkinter.filedialog.askopenfilename()image = Image.open(select_file)width, height = image.sizefor i in range(0, width):for j in range(0, height):# 获取像素current_pixel = image.getpixel((i, j))# 白色if current_pixel > (150, 150, 150):white_pixel += 1# 黑色elif current_pixel < (50, 50, 50):black_pixel += 1black_pixel_percent = black_pixel / (width * height)white_pixel_percent = white_pixel / (width * height)result_text.insert("insert", f'黑色像素:{black_pixel},占比:{black_pixel_percent:.{2}%}'f'\n白色像素:{white_pixel},占比:{white_pixel_percent:.{2}%}')root = tkinter.Tk()
root.title('黑白像素统计Case')
root.minsize(240, 160)
my_font = tf.Font(family='微软雅黑', size=15) # 设置字体main_frame = tkinter.Frame(root).grid()# 选择文件按钮
choice_file_btn = tkinter.Button(main_frame, text='请选择文件', command=upload_file)
# 计算结果显示框
result_text = tkinter.Text(main_frame, width=30, height=5, font=my_font)choice_file_btn.grid(row=0, column=0)
result_text.grid(row=0, column=1)root.mainloop()
三、效果确认
1、测试图片
2、测试结果
总结
分享:
从量子力学的角度来看意识,发现了一切被认知的物质状态,都是以意识的介入为基础,也就是从量子力学的诡异现象看出,一切万事万物都是由意识呈现出来的。这么新奇的理论居然是说明佛法所说的“心地法门”就是最准确的科学!有理论、有方法、有标准、可实践,这是佛法科学性的四大特质。
python黑白像素面积占比计算(脏污、白点等)相关推荐
- python求三角形面积步骤_Python3计算三角形的面积代码
关于Python语言,众说纷纭,但无外乎两种,强大,垃圾.大多数人还是对Python持肯定意见,认为它很强大.前些天和两个的大学同学聊天,一个是在做手机测试,一个是给银行系统做维护一类的工作,都在北京 ...
- python怎么算面积_python怎么计算面积?
用Python计算面积的知识点: 1. 长方形面积和三角形面积,因为要从终端接收用户的多个参数输入,所以用了map(int, raw_input().split())这种方式 2. 圆面积只想保留小数 ...
- opencv计算指定区域黑白像素占比
如下在我们拿到二值化的图像之后,想要计算红框内黑白像素在该区域的占比.注意单通道的图像无法出现黑白以外的颜色. 上图为我们拿到的红色区域二值化之后的图像.我们通过遍历该区域所有像素来判断.若值为255 ...
- 使用Python+opencv+k-means根据扫描图片计算叶片面积-续
一 .概述 之前写了一篇计算叶片面积的文章,后来想想其实没有那么复杂,直接二值化计算即可得到,原来的代码写了几十行,其实十余行就可以计算得到叶片面积了. 原文:使用Python+opencv+k-me ...
- C语言 从键盘输入圆的半径,计算并输出圆的正内接六边形的面积,以及这个正六边形面积占圆面积之百分比
编一程序,从键盘输入圆的半径,计算并输出圆的正内接六边形的面积,以及这个正六边形面积占圆面积之百分比.圆的正内接六边形的面积计算公式为:area=sqrt(3)*3/2r2.其中,r是圆半径,sqrt ...
- OpenCV计算指定区域的黑白像素个数
过程模拟模板匹配过程,可修改成模板匹配方式: 过程:读取一张图片->从图片中选取感兴趣区域(ROI),并保存->把保存下来的区域图片(ROI)读取出来->预处理后计算黑白像素的个数 ...
- VS+openCV 用直方图统计像素(上)计算图像直方图、利用查找表修改图像外观
一.计算图像直方图 图像由各种数值的像素构成.例如在单通道灰度图像中,每个像素都有一个 0(黑色)~255(白色)的整数.对于每个灰度,都有不同数量的像素分布在图像内,具体取决于图片内容. 直方图是一 ...
- python图像识别之图片相似度计算
作者 | a1131825850疯子 来源 | Python爬虫scrapy 1.背景 要识别两张图片是否相似,首先我们可能会区分这两张图是人物照,还是风景照等-对应的风景照是蓝天还是大海-做一系列 ...
- Python OpenCV像素操作
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:opencv学堂 Python OpenCV像素操作 环 ...
最新文章
- APC UPS网络管理卡 (AP9606/9617/9618/9619)的快速安装及配置指南
- 阿里云rds mysql数据库数据恢复到ecs中
- 电动力学每日一题 2021/10/12
- caffe学习(五):cifar-10数据集训练及测试(Ubuntu)
- 哈希算法python_哈希算法(Python代码实现)
- hdu 1757 矩阵连乘
- Python-流程控制
- 深入浅出SQL(1)
- HALCON示例程序ball电路板焊点识别、检测、测量程序2剖析(与上篇文章使用了不同方法)
- 【NOI2019】弹跳【二维线段树】【dijkstra】
- 与图论的邂逅09:树上启发式合并
- 在Windows上将Ctrl+C信号发送到Python subprocess子进程
- YbSoftwareFactory 代码生成插件【二十三】:集成强大的公文流转系统
- python将xls文件转换xlsx
- 为什么机会总是留给有准备的人?这是我听过最好的答案
- 巧用剪贴蒙版制作西瓜图标
- 序列化解决方案,就是采用二进制通信协议(数据报文格式)
- eclipse配置tomcat8.5(注意是8.5)
- 【AI应用】Intel(R) Xeon(R) Silver 4216 CPU @ 2.10GHz的详情参数
- 【STM32】通用定时器TIM2-TIM5中断配置方式+继电器控制