MATLAB 简单的计算白色轮廓中像素点的个数
来源:互联网 发布:深圳大数据协会 编辑:程序博客网 时间:2024/04/30 03:26
近来,有朋友问到,如何计算白色轮廓中的像素点的个数。我在这里就举一个超级简单的例子,就是假设一副二值图片,其背景是黑色的,而你的边缘是白色的,而且你的白色边缘中不包含黑色的点,就如附件中的那个图像。下面是一个简单的计算轮廓包含起来的像素点的个数的程序:
%% 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 。我想这样说你应该能明白了。至于面积的计算方法有很多中方法,我就不说了。或者可以用个数来代替面积。
- MATLAB 简单的计算白色轮廓中像素点的个数
- 计算像素轮廓的像素面积算法
- opencv中轮廓内部的像素点怎么提取
- 计算轮廓点的最小凸包像素面积,最小外接圆的快速方法
- 计算轮廓点的最小凸包像素面积,最小外接圆的快速方法
- 计算连通区域的像素点个数,找目标圆点
- 【opencv】统计图像二值化后白色像素点个数
- opencv3计算图像中轮廓的面积
- opencv3计算图像中轮廓的长度
- python 图像的保存和显示,遍历保存于显示, 去除白色像素点
- JavaScript 计算字符串所占的像素个数
- 设置MATLAB中figure的背景为白色
- 设置MATLAB中figure图的背景为白色
- 设置MATLAB中figure的背景为白色
- Matlab 图像像素点在RGB空间的显示
- 简单的matlab分布式计算
- 封闭像素轮廓的周长筛选算法
- matlab中计算矩的速度的简单测试
- 怎样避免iPad音乐视频图书在同步时被清除
- 怎样避免iPad音乐视频图书在同步时被清除
- 常见视频文件的编码方式和封装格式
- Qt 背景的添加
- hdoj1283
- MATLAB 简单的计算白色轮廓中像素点的个数
- 2010新编中国顶级黑客圈内人物资料和QQ,微博以及博客详解
- PHP连接mysql例子
- 缺失数据检查
- flex中的identify纠正
- volatile关键字
- ORACLE中方案的概念以及方案与数据库的关系
- SQL 标量函数-----> 取子串函数 、子串长度
- opendedup(sdfs)源码分析5之FakeFilesystem篇