`

统计一张图片中的白色像素点占比

 
阅读更多
#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;
//统计一幅图片中白色像素点和黑色像素点占整幅图的比例

int bSums(Mat src)
{

	int counter = 0;
	int black = 0;
	int n = 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 counter;
}
int main(int agrc,char** agrv)
{
	Mat imgPath = imread("D://XR//811416.jpg");//读取源图
	//namedWindow("原图", 0);
	//resizeWindow("原图", 500, 500);
	imshow("原图", imgPath);
	
	Mat a1;
	cvtColor(imgPath, a1, COLOR_BGR2GRAY);//转灰度图
	//namedWindow("灰度", 0);
	//resizeWindow("灰度", 500, 500);
	imshow("灰度", a1);

	Mat a2;
	threshold(a1, a2, 0, 255, THRESH_BINARY | THRESH_OTSU);//二值化
	//namedWindow("灰度", 0);
	//resizeWindow("灰度", 500, 500);
	imshow("灰度", a2);

	int a = bSums(a2);//调用函数bSums
	imshow("A", a2);
	//cout << "A:" << a;
	waitKey();
	return 0;
}

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    获取图片每个像素点的rgb值源码

    在图像处理领域,获取图片每个像素点的RGB值是一项基础且重要的操作。RGB(Red, Green, Blue)是颜色模型的一种,它通过红、绿、蓝三种颜色的不同强度组合来表示各种颜色。以下是一个关于如何获取图片每个像素点RGB...

    用MATLAB把统计灰度图中每种颜色数目,并将某些像素标红

    - **确定标红条件**:题目中提到将灰度值占比小于0.01的点标红,因此首先需要根据灰度值统计结果找到满足条件的像素坐标。 ```matlab threshold = 0.01; % 阈值设置 lowPercentIndices = find(percentages ); % ...

    python实现图片切割,获取图片像素点 pngtools.zip

    在Python编程语言中,处理图像是一项常见的任务,其中包括图片的切割和获取像素点。这个名为“pngtools.zip”的压缩包可能包含一个或多个Python脚本,用于实现这些功能。让我们详细了解一下如何使用Python来实现图片...

    Qt载入图片界面并获得每个像素点坐标

    在Qt框架中,实现一个能够加载图片并在界面上显示,同时获取鼠标在图片上移动时所对应的像素点坐标的功能,需要对Qt的图形系统有深入理解。以下将详细阐述这个过程涉及的关键知识点。 首先,Qt中的`QImage`类是处理...

    C# 获取图片某像素点RGB565值

    在C#编程中,获取图片中某个像素点的RGB565值是一项常见的图像处理任务。RGB565是一种16位颜色格式,用于存储颜色数据,其中R(红色)占5位,G(绿色)占6位,B(蓝色)占5位,这种格式在嵌入式系统和低内存应用中...

    python opencv 二值化 计算白色像素点的实例

    本文将详细介绍如何使用Python和OpenCV进行二值化操作,并计算图像中的白色像素点数量。 首先,我们需要导入必要的库,如`cv2`用于OpenCV操作,`numpy`用于数值计算,以及`PIL`(Python Imaging Library)用于图像...

    JavaScript通过canvas获取图片像素点并导出到文件转为RGB像素值HTML标签

    1.通过JS技术把获取已知图片的像素值 2.获取到像素值去除A通道干扰 3.把最终的像素值一维数组转换HTML文件格式并导出到文件 4.懂JS获取文件内容的技术人员可以通过JS获取导出的文件内容,赋值给HTML标签,这样图片就...

    获取图像中指定颜色的像素点坐标

    很好的提取指定图像中指定颜色的像素点坐标的c++代码

    提取图像中特定像素点

    根据给定文件的信息,本文将围绕“提取图像中特定像素点”的主题展开,重点解析如何在C语言环境下读取并提取位图文件(BMP)中的特定像素点颜色信息。 ### 一、图像处理背景 在图像处理领域,特征值提取是一项基本...

    binarization.zip_像素点255*255_设置像素点值

    在二值化过程中,当像素点的灰度值等于255时,会被设定为白色;反之,如果灰度值为0,则会被设定为黑色。这种转换使得图像的边界和特征更加清晰,对于文字识别、噪声消除、边缘检测等应用场景非常有用。 标签“设置...

    提取彩色图片像素点_色度学_matlab_提取彩色图片像素点_

    总结来说,从彩色图片中提取像素点并运用色度学原理计算温度,需要掌握MATLAB的基本图像处理函数,理解色度学概念,以及可能的温度模型。通过编写脚本,我们可以实现从读取图像、遍历像素、颜色空间转换到温度计算的...

    获得图片上任意像素点RGB值和HSV值

    在计算机视觉领域,获取图像中任意像素点的色彩信息是一项基本操作。OpenCV是一个强大的开源计算机视觉库,它提供了丰富的函数来处理图像和视频数据。本程序利用OpenCV实现了通过鼠标点击获取图像上像素点的RGB值和...

    获取图片像素工具

    "获取图片像素工具"是一款专为图像处理爱好者和专业设计师设计的应用程序,它允许用户轻松地查看和提取图像中的每一个像素的颜色信息。在数字图像处理领域,了解和精确控制像素颜色是至关重要的,无论是进行图像编辑...

    matlab开发-对光线比例图像进行白色着色的百分比

    标题提到的"对光线比例图像进行白色着色的百分比"是指在灰度图像中计算白色像素所占的比例,这是一个典型的图像分析问题。在这个场景下,"光线比例图像"通常指的是灰度图像,因为灰度图像的每个像素值代表了光的强度...

    蓝色像素点统计车牌定位程序

    - **蓝色像素统计**:在本案例中,主要关注于统计蓝色像素点的数量,以此作为车牌区域的筛选条件之一。具体而言,通过对蓝色像素点数量的统计,可以初步确定可能包含车牌的区域。 2. **车牌区域定位优化:** - *...

    Opencv图像处理:如何判断图片里某个颜色值占的比例

    - 统计满足条件的像素数量(`num`),然后除以总像素数(`image.rows * image.cols`)得到黑色像素的比例,存储在`rate`变量中。 - 如果这个比例大于设定的阈值(在这个例子中是0.20),则认为图像中有大量黑色,...

    C#图片颜色比例分布

    "C#图片颜色比例分布"这个主题涉及到如何使用C#编程语言来提取并统计图像中各种颜色的比例。下面我们将深入探讨这个话题。 首先,我们需要理解颜色模型。在RGB(Red, Green, Blue)模型中,每种颜色由红色、绿色和...

    js获得canvas中指定像素点的颜色

    当我们需要获取Canvas中某个特定像素点的颜色时,可以使用`getImageData()`方法。这个方法允许我们获取Canvas渲染上下文中的像素数据,并将其转化为一个`ImageData`对象,其中包含了每个像素的RGB(红绿蓝)和透明度...

    不错的像素点网页特效

    通过研究和解析这些文件,我们可以学习到如何将像素点特效应用于实际的网页设计中。 总的来说,像素点网页特效结合了前端开发的多种技术,通过巧妙运用CSS3、JavaScript和HTML5,设计师可以创造出令人印象深刻的...

Global site tag (gtag.js) - Google Analytics