python_openCV_计算图片中的区域的黑色比例

news/2024/12/23 6:33:35/

希望对原始图片进行处理,然后计算图片上的黑色和白色的占比
上图,

在这里插入图片描述
原始图片
在这里插入图片描述

python">import numpy as np
import cv2
import  matplotlib.pyplot as pltdef cal_black(img_file):#功能: 计算图片中的区域的黑色比例#取图片中不同的位置进行计算,然后计算器数值#----------------percentages={}#初始化变量    img=cv2.imread(img_file)#step1,加载图片#fiter_1.jpg    shape_size=img.shape#图片的尺寸dic_area=split_area(shape_size)#需要检测的位置。#剪切图片part_img_1=img[y1:y2,x1:x2]# 灰度处理img_grey=cv2.cvtColor(part_img_1,cv2.COLOR_RGB2GRAY)#COLOR_BGR2GRAY# 高斯过滤噪音ret, thresh = cv2.threshold(img_grey, 127, 255, cv2.THRESH_BINARY)  #img_source 为处理后的图片,二值化处理后的图片\black=0color_black=0color_white=0shape_size=thresh.shapefor i in range(0,shape_size[0]):y,x=shape_size[0],shape_size[1]color=thresh[i,0]#得到他得颜色RGB数值if color==255:color_white=color_white+1#白色else:color_black=color_black+1#黑色percentages[key]=100*color_black/(color_white+color_white)#计算黑色占比return percentages

在代码中主要采用了遍历进行计算,每个点计算函数的颜色然后统计,比较简单暴力,

网络上有另外的方法,摘录如下;更改其中的代码就可以。

python">
# # 应用二值化 
ret, thresh = cv2.threshold(img_grey, 80, 255, cv2.THRESH_BINARY)  #80
# ------------计算黑色像素的数量
black_pixels = np.count_nonzero(thresh == 0)# 计算黑色像素的数量
black_pixels2 = np.sum(thresh == 0)
# ------------计算总的像素数量
total_pixels = thresh.shape[0] * thresh.shape[1]
# ------------计算黑色像素的占比
black_ratio = black_pixels / total_pixelsprint(f"黑色像素的占比: {black_ratio:.4f}")

主要用于图像特征分析。


http://www.ppmy.cn/news/1523230.html

相关文章

Spring中FactoryBean的高级用法实战

❃博主首页 &#xff1a; 「码到三十五」 &#xff0c;同名公众号 :「码到三十五」&#xff0c;wx号 : 「liwu0213」 ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a…

一次windows server 服务器病毒分析处理总结

接到反应某企业绿盟平台一直报警&#xff0c;当天发现服务器IP地址为192.168.xx.xx 的一天有上千条报警。针对这种情况&#xff0c;进行了分析并进行了处理。 一、绿盟安全管理平台报警 ​ 平台检测到某服务器有远程命令执行漏洞、挖矿行为等异常行为。平台目前最早记录为 20…

Leetcode39- 使数组中所有元素都等于零(2357)

1、题目 给你一个非负整数数组 nums 。在一步操作中&#xff0c;你必须&#xff1a; 选出一个正整数 x &#xff0c;x 需要小于或等于 nums 中 最小 的 非零 元素。 nums 中的每个正整数都减去 x。 返回使 nums 中所有元素都等于 0 需要的 最少 操作数。 示例 1&#xff1a;…

Linux学习-inotify和rsync同步

Inotify 是一个 Linux特性&#xff0c;它监控文件系统操作&#xff0c;比如读取、写入和创建。Inotify 反应灵敏&#xff0c;用法非常简单&#xff0c;并且比 cron 任务的繁忙轮询高效得多。 Inotify实际基于事件驱动机制&#xff0c;为应用程序监控文件系统事件提供了实时响应…

AES加密算法说明

首先&#xff0c;我们得了解AES加密算法的一些基本概念。AES是一种对称加密算法&#xff0c;所谓对称&#xff0c;是说它的加密、解密过程使用相同的密钥。还有非对称加密算法&#xff0c;例如RSA&#xff0c;加密解密使用的是公私钥对。 AES同时是一种分组加密算法&#xff0c…

240909-ChuanhuChatGPT集成Ollama的环境配置

A. 最终效果 B. 需求文件 requirements.txt (至少需要安装这个&#xff0c;具体参见官网)requirements_advanced.txt &#xff08;如果安装了Ollama&#xff0c;并且可以进行对话&#xff0c;可以不需要安装&#xff0c;具体参见官网&#xff09;requirements_succcess.txt&am…

Axure中继器介绍

中继器我们一般在处理重复性比较高的任务时&#xff0c;能让我们达到事半功倍的效果&#xff0c;中继器在整个axure中属于复杂程度比较高的功能&#xff0c;我们今天大致讲一下常用的方法即可。 一、声明一个中继器 默认展示为三行。 点击样式&#xff0c;这里我们可以添加删…

python内置模块datetime.time类详细介绍

​​​​​​​Python的datetime模块是一个强大的日期和时间处理库&#xff0c;它提供了多个类来处理日期和时间。主要包括几个功能类datetime.date、datetime.time、datetime.datetime、datetime.timedelta,datetime.timezone等。 ----------动动小手&#xff0c;非常感谢各位…