二值图像的面积求取的两种方法及MATLAB实现

news/2024/9/30 12:35:08 标签: 算法, 计算机视觉, matlab, 图像处理

一、引言

       面积在数字图像处理中经常用到,在MATLAB中,计算二值图像的面积通常可以通过两种主要方法实现:遍历法和直接利用bwarea函数。下面将分别介绍这两种方法的原理和相应的MATLAB代码示例。

二、遍历法计算二值图像面积的原理和MATLAB代码

        原理:遍历法是通过直接遍历图像中的每一个像素,统计值为1的像素个数,从而估算出图像中对象的面积。由于二值图像中对象的面积通常与其包含的像素数成正比,因此这种方法简单直观。

clear all;
close all;
clc;
bwImage = imread('circles.png');  % 读取二值图像  
imshow(bwImage),title('二值图像');
% 确保图像是逻辑数组(二值图像),如果不是,则进行转换  
bwImage = logical(bwImage);  
totalArea = 0;  % 初始化面积计数器  
% 遍历图像的每个像素,并计算前景像素的数量  
[rows, cols] = size(bwImage);  %获取二值图像的行列数
for row = 1:rows  
    for col = 1:cols  
        if bwImage(row, col)  
            totalArea = totalArea + 1;  
        end  
    end  
end  
% 显示总面积  
fprintf('图像中前景的总面积(像素计数): %d\n', totalArea);

运行结果:

8447c49d7ab147f98abc6c34d7b4a6b6.png

9d8b921d4ed74048862f9663b220b6a5.png

三、bwarea函数计算二值图像面积和MATLAB代码

      原理bwarea函数是MATLAB中专门用于计算二值图像中对象面积的函数。它通过对图像中每个像素的面积求和来估算图像中所有on像素的面积。需要注意的是,由于不同像素图案的加权不同,返回的面积值可能与实际像素数不完全相同,但大致上反映了图像中对象的面积。

clear all;close all;clc;
img = imread('circles.png');% 读取图像      
totalArea = sum(bwarea(img));  % bwarea返回的是每个对象的面积,如果需要总面积,需要求和  
fprintf('图像中前景的总面积(像素计数): %f pixels\n', totalArea);% 输出总面积

0564b1c62b8e4b9e9a7b92374e2f4204.png

四、对比分析

      综上所述,利用遍历法和bwarea函数求解面积时结果不同,主要是由于它们在计算原理、像素处理方式、边界和噪声处理等方面的差异所导致的。在实际应用中,应根据实际情况和图像特性选择合适的方法。

      如果你觉得本文对大家学习有帮助,请关注、转发和点赞!

 

 


http://www.niftyadmin.cn/n/5685113.html

相关文章

PostgreSQL是否有等待事件

PostgreSQL是否有等待事件 PostgreSQL 提供了等待事件(Wait Events)的机制,用于监控数据库运行过程中因资源争用而导致的等待情况。这些等待事件可以帮助数据库管理员识别导致性能问题的瓶颈,例如锁冲突、I/O 等待等。 什么是等…

【快速删除 node_modules 】rimraf

目录 1. 什么是node_modules 2. 卸载一个npm包 3. 删除 node_modules 为什么这么慢 4. rimraf 5. 为什么rimraf 这么快 作为前端开发,无论我们关注不关注,每天都能接触到node_modules。通常产生于一个npm install命令,之后就不会多加关注…

深度学习--------------------------------门控循环单元GRU

目录 门候选隐状态隐状态门控循环单元GRU从零开始实现代码初始化模型参数定义隐藏状态的初始化函数定义门控循环单元模型训练该部分总代码简洁代码实现 做RNN的时候处理不了太长的序列,这是因为把整个序列信息全部放在隐藏状态里面,当时间很长的话&#…

C++的6种构造函数

在 C 中,构造函数是一种特殊的成员函数,用于初始化类对象。在对象创建时自动调用,构造函数的主要作用是分配资源、初始化数据成员等。根据不同的功能和使用场景,C 提供了多种类型的构造函数: 1. 默认构造函数 (Defaul…

MySQL 索引最左匹配原则详解

MySQL 索引最左匹配原则详解 在使用 MySQL 数据库进行查询优化时,索引是一项至关重要的工具。理解索引的最左匹配原则及其底层实现原因,对于编写高效的 SQL 查询至关重要。本文将深入讲解 MySQL 索引最左匹配原则,为什么不满足最左匹配原则会…

【以图搜图代码实现】--犬类以图搜图示例

1.背景及目标 随着互联网技术的发展,图像数据呈指数级增长。图像搜索技术已经成为人们日常生活和工作中不可或缺的一部分,尤其是在电子商务、社交媒体、在线教育等领域。传统的基于文本的搜索引擎虽然已经非常成熟,但在面对大量无标签或标签…

GEE数据集:1996 年到 2020 年全球红树林观测数据集(JAXA)(更新)

目录 简介 数据集说明 数据集 代码 代码链接 结果 引用 许可 网址推荐 0代码在线构建地图应用 机器学习 简介 全球红树林观测 这项研究使用了日本宇宙航空研究开发机构(JAXA)提供的 L 波段合成孔径雷达(SAR)全球mask…

buff叠满!软考报名越晚,批次越晚?考试越难?

近日,各地软考办都发布了2024年下半年软考批次安排。 报考了软考中级-系统集成项目管理工程师(简称“集成”)的广东考生炸锅了,我会被分到11月11日(周一)的第四批次、第五批次考试吗? 软考批次是…