一个个传入图片(二值化后)并统计像素点

2023-12-22 08:09

本文主要是介绍一个个传入图片(二值化后)并统计像素点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

//从文件夹中一张张传入图片,统计每张图片中白色像素点占比。累加和除以图片个数,算出平均值
#include <stdio.h>
#include "opencv2/highgui/highgui.hpp"  
#include "opencv2/imgproc/imgproc.hpp"  
#include "opencv2/core/core.hpp"
#include <opencv\ml.h>
#include <iostream>
#include "cv.h"
#include "highgui.h"
#include <vector>
#include <math.h>
#include <string.h>
#include <fstream>using namespace std;
using namespace cv;char filename[1000];
char windowname[1000];int n = 0;//n是所有像素点
int counter = 0;//白色像素点//计算一张图片的像素点
int bSums(Mat src)
{int black = 0;//黑色像素点//迭代器访问像素点Mat_<uchar>::iterator it = src.begin<uchar>();Mat_<uchar>::iterator itend = src.end<uchar>();for (; it != itend; ++it){n++;if ((*it) > 0){counter += 1;//二值化后,像素点是0或者255}else {black += 1;}}//白色像素点百分比double biliB = counter * 1.0 / n * 1.0 * 100 * 1.0;//黑色像素点百分比//double biliH = black * 1.0 / n * 1.0 * 100 * 1.0;//cout << "counter:" << counter << endl;//cout << "black:" << black << endl;//cout << "n:" << n << endl;//cout << "biliB:" << biliB << endl;//cout << "biliH:" << biliH << endl;return biliB;
}int main(int argc, char *argv[])
{double sum = 0;double sumB = 0;int i;//循环传入图片for (i = 1; i <= 999; i++){//文件夹中照片的名字必须从1开始sprintf_s(filename, "D://OK//%d.jpg", i);//sprintf(windowname, "window%d.jpg", i);Mat pScr = imread(filename, 1);//cvNamedWindow(windowname, CV_WINDOW_AUTOSIZE);//cvShowImage(windowname, pScr);Mat a1;cvtColor(pScr, a1, COLOR_BGR2GRAY);//转灰度图Mat a2;threshold(a1, a2, 0, 255, THRESH_BINARY | THRESH_OTSU);//二值化double B = bSums(a2);//调用函数bSums计算每张图片的白色像素点百分比sumB += counter;sum += B;//累加所有图片的白色像素点百分比}double per = sum * 1.0/ i *1.0;//除以图片个数,算出所有图片白色像素点百分比的平均值cout << "i: " << i << endl;cout << "sum: " << sum << endl;cout << "sumB: " << sumB << endl;cout << "per: " << per << endl;waitKey();system("pause");return 0;
}

 

这篇关于一个个传入图片(二值化后)并统计像素点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/523201

相关文章

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

c/c++的opencv实现图片膨胀

《c/c++的opencv实现图片膨胀》图像膨胀是形态学操作,通过结构元素扩张亮区填充孔洞、连接断开部分、加粗物体,OpenCV的cv::dilate函数实现该操作,本文就来介绍一下opencv图片... 目录什么是图像膨胀?结构元素 (KerChina编程nel)OpenCV 中的 cv::dilate() 函

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现