matlab怎么算每一个联通区域的像素点个数除以(长乘宽) 105

上面的那个像素点个数除以(长乘宽),可以说成是密度,怎么把小于一个密度的区域删除,最主要的是怎么计算这个密度。大神们帮一下啊。。。... 上面的那个像素点个数除以(长乘宽),可以说成是密度,怎么把小于一个密度的区域删除,最主要的是怎么计算这个密度。
大神们帮一下啊。。。
展开
 我来答
OpticalCommunication
2016-05-13 · 专注光通讯领域前沿资讯
OpticalCommunication
采纳数:35 获赞数:1617

向TA提问 私信TA
展开全部
你把图片发出来,我先用代码运行一下
更多追问追答
追问

追答

大致按照您的要求,进行了如下调试,如有不足欢迎继续提问:

代码如下:

******************************************

clear all;clc;close all;

I0=imread('E:\Matlab2010\math\3.1.jpg'); %图像读入

I1=rgb2gray(I0); %转换为灰度图

A=im2bw(I1); %转换为二值图

B=bwmorph(A,'spur',10);  %形态学操作,去除毛刺

C=bwareaopen(B,1550); %滤除面积小于1550的区域,这个可调

%每一步图像输出

figure,imshow(A);

figure,imshow(B);

figure,imshow(C);


L=bwlabel(C); %标记连通区域

D=regionprops(L,'Area'); %提取各连通区域面积(像素总和)

[h,w]=size(C)  %图片的大小h*w,生成一个向量

v=[D.Area] %将3个区域像面积存为1x3向量

SumArea=sum(v)  %三个区域面积(像素和)相加

density=SumArea/(h*w) %像素总和处理长宽积得密度

************************************************************

运行结果:

h =  584

w = 1028

v =  49494        3965        1568

SumArea = 55027

density =0.0917

******************************************************

以下是截图:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式