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

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

相关文章

hdu1496(用hash思想统计数目)

作为一个刚学hash的孩子,感觉这道题目很不错,灵活的运用的数组的下标。 解题步骤:如果用常规方法解,那么时间复杂度为O(n^4),肯定会超时,然后参考了网上的解题方法,将等式分成两个部分,a*x1^2+b*x2^2和c*x3^2+d*x4^2, 各自作为数组的下标,如果两部分相加为0,则满足等式; 代码如下: #include<iostream>#include<algorithm

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

hdu4267区间统计

题意:给一些数,有两种操作,一种是在[a,b] 区间内,对(i - a)% k == 0 的加value,另一种操作是询问某个位置的值。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import

hdu4417区间统计

给你一个数列{An},然后有m次查询,每次查询一段区间 [l,r] <= h 的值的个数。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamRead

hdu3333区间统计

题目大意:求一个区间内不重复数字的和,例如1 1 1 3,区间[1,4]的和为4。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;

实例:如何统计当前主机的连接状态和连接数

统计当前主机的连接状态和连接数 在 Linux 中,可使用 ss 命令来查看主机的网络连接状态。以下是统计当前主机连接状态和连接主机数量的具体操作。 1. 统计当前主机的连接状态 使用 ss 命令结合 grep、cut、sort 和 uniq 命令来统计当前主机的 TCP 连接状态。 ss -nta | grep -v '^State' | cut -d " " -f 1 | sort |

Android 10.0 mtk平板camera2横屏预览旋转90度横屏拍照图片旋转90度功能实现

1.前言 在10.0的系统rom定制化开发中,在进行一些平板等默认横屏的设备开发的过程中,需要在进入camera2的 时候,默认预览图像也是需要横屏显示的,在上一篇已经实现了横屏预览功能,然后发现横屏预览后,拍照保存的图片 依然是竖屏的,所以说同样需要将图片也保存为横屏图标了,所以就需要看下mtk的camera2的相关横屏保存图片功能, 如何实现实现横屏保存图片功能 如图所示: 2.mtk

Spring MVC 图片上传

引入需要的包 <dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-

Prompt - 将图片的表格转换成Markdown

Prompt - 将图片的表格转换成Markdown 0. 引言1. 提示词2. 原始版本 0. 引言 最近尝试将图片中的表格转换成Markdown格式,需要不断条件和优化提示词。记录一下调整好的提示词,以后在继续优化迭代。 1. 提示词 英文版本: You are an AI assistant tasked with extracting the content of