我是靠谱客的博主 细腻世界,最近开发中收集的这篇文章主要介绍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 np
img=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]=255
else:
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+=1
else:
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 Image
def upload_file():
# askopenfilename 上传1个;askopenfilenames上传多个
result_text.delete(1.0, 'end')
black_pixel = 0
white_pixel = 0
select_file = tkinter.filedialog.askopenfilename()
image = Image.open(select_file)
width, height = image.size
for 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 += 1
black_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黑白像素面积占比计算(脏污、白点等)系列文章目录前言一、专词解释二、效果实现三、效果确认总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复