系列文章目录

文章目录

  • 系列文章目录
  • 前言
  • 一、专词解释
  • 二、效果实现
    • 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黑白像素面积占比计算(脏污、白点等)相关推荐

  1. python求三角形面积步骤_Python3计算三角形的面积代码

    关于Python语言,众说纷纭,但无外乎两种,强大,垃圾.大多数人还是对Python持肯定意见,认为它很强大.前些天和两个的大学同学聊天,一个是在做手机测试,一个是给银行系统做维护一类的工作,都在北京 ...

  2. python怎么算面积_python怎么计算面积?

    用Python计算面积的知识点: 1. 长方形面积和三角形面积,因为要从终端接收用户的多个参数输入,所以用了map(int, raw_input().split())这种方式 2. 圆面积只想保留小数 ...

  3. opencv计算指定区域黑白像素占比

    如下在我们拿到二值化的图像之后,想要计算红框内黑白像素在该区域的占比.注意单通道的图像无法出现黑白以外的颜色. 上图为我们拿到的红色区域二值化之后的图像.我们通过遍历该区域所有像素来判断.若值为255 ...

  4. 使用Python+opencv+k-means根据扫描图片计算叶片面积-续

    一 .概述 之前写了一篇计算叶片面积的文章,后来想想其实没有那么复杂,直接二值化计算即可得到,原来的代码写了几十行,其实十余行就可以计算得到叶片面积了. 原文:使用Python+opencv+k-me ...

  5. C语言 从键盘输入圆的半径,计算并输出圆的正内接六边形的面积,以及这个正六边形面积占圆面积之百分比

    编一程序,从键盘输入圆的半径,计算并输出圆的正内接六边形的面积,以及这个正六边形面积占圆面积之百分比.圆的正内接六边形的面积计算公式为:area=sqrt(3)*3/2r2.其中,r是圆半径,sqrt ...

  6. OpenCV计算指定区域的黑白像素个数

    过程模拟模板匹配过程,可修改成模板匹配方式: 过程:读取一张图片->从图片中选取感兴趣区域(ROI),并保存->把保存下来的区域图片(ROI)读取出来->预处理后计算黑白像素的个数 ...

  7. VS+openCV 用直方图统计像素(上)计算图像直方图、利用查找表修改图像外观

    一.计算图像直方图 图像由各种数值的像素构成.例如在单通道灰度图像中,每个像素都有一个 0(黑色)~255(白色)的整数.对于每个灰度,都有不同数量的像素分布在图像内,具体取决于图片内容. 直方图是一 ...

  8. python图像识别之图片相似度计算

    作者 | a1131825850疯子  来源 | Python爬虫scrapy 1.背景 要识别两张图片是否相似,首先我们可能会区分这两张图是人物照,还是风景照等-对应的风景照是蓝天还是大海-做一系列 ...

  9. Python OpenCV像素操作

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:opencv学堂 Python OpenCV像素操作 环 ...

最新文章

  1. APC UPS网络管理卡 (AP9606/9617/9618/9619)的快速安装及配置指南
  2. 阿里云rds mysql数据库数据恢复到ecs中
  3. 电动力学每日一题 2021/10/12
  4. caffe学习(五):cifar-10数据集训练及测试(Ubuntu)
  5. 哈希算法python_哈希算法(Python代码实现)
  6. hdu 1757 矩阵连乘
  7. Python-流程控制
  8. 深入浅出SQL(1)
  9. HALCON示例程序ball电路板焊点识别、检测、测量程序2剖析(与上篇文章使用了不同方法)
  10. 【NOI2019】弹跳【二维线段树】【dijkstra】
  11. 与图论的邂逅09:树上启发式合并
  12. 在Windows上将Ctrl+C信号发送到Python subprocess子进程
  13. YbSoftwareFactory 代码生成插件【二十三】:集成强大的公文流转系统
  14. python将xls文件转换xlsx
  15. 为什么机会总是留给有准备的人?这是我听过最好的答案
  16. 巧用剪贴蒙版制作西瓜图标
  17. 序列化解决方案,就是采用二进制通信协议(数据报文格式)
  18. eclipse配置tomcat8.5(注意是8.5)
  19. 【AI应用】Intel(R) Xeon(R) Silver 4216 CPU @ 2.10GHz的详情参数
  20. 【STM32】通用定时器TIM2-TIM5中断配置方式+继电器控制

热门文章

  1. VS code之代码格式化快捷键
  2. 使用NPOI按照word模板文件生成新的word文件
  3. FPGA开发——图像处理(包括MT9V034等摄像头学习笔记)
  4. Java常见面试题(2)
  5. 能测试成绩的学习软件,普通话学习测试这个软件上,我平均成绩能达到二甲,请问如果在真正的普通话考试上,我大概能得到什么等级...
  6. 【平衡车】PID控制原理到底如何理解?建议收藏!
  7. 什么是类、什么是对象
  8. 替代DRV8825的打印机/扫描仪驱动芯片TMI8420
  9. Linux:TTY串口驱动数据接收设置
  10. Python机器学习基础篇三《无监督学习与预处理》