matlab单个像素面积,我用MATLAB计算出了图像目标区域的像素点个数,请问知道了目标区域的像素点怎么计算目标区域的面积?...

满意答案

下面是一个简单的计算轮廓包含起来的像素点的个数的程序:

%% step 1

clear all

clc

I=imread('test.bmp');%读入图片

bwI=im2bw(I,0.5);%转化为二值图像

L=bwlabel(bwI,4);%将四连通区域进行标记

[r,c]=find(L==1);%查找其中的白色区域,r是白点的所在行组成的向量,c是白点所在的列组成的向量

%% step 2 %去除r中重复的数

new_r=[];

for i=1:length(r)

nn=find(new_r==r(i));

if isempty(nn),new_r=[new_r r(i)];end

end

%% step 3

sum_zeros=0;%轮廓中总的点的个数

for i=1:length(new_r)

n=find(bwI(new_r(i),:)==1);%查找有白点的行中白点所在的位置

if length(n)==1,continue;end%如果该行中只有一个白点,则返回

num_zeros=n(end)-n(1)+1-length(n);%否则计算夹在白点之间的黑点的个数

sum_zeros=sum_zeros+num_zeros;

end

就是这样的,比如这一行是这样的001110000011100,那么step3中的n就是一个向量:3 4 5 11 12 13,这六个数分别是这行中白点的位置,那么其中的夹在1之间的0的个数就是:13-3+1-6=5 。

02分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值