其中Rosenfeld细化算法为并行算法,可以将图像进行分割计算

clear
clc
close all
tic;
img = rgb2gray(imread('3.png'));
bw = imbinarize(img);%注意二值化后应使得白色为前景,黑色为背景
figure;
imshow(bw)
toc;[m,n] = size(bw);
% 矩阵边界往外扩充一个像素
bw1 = zeros(m+2,n+2);
bw1(2:m+1,2:n+1) =bw;
bw1(1,:) = bw1(2,:);
bw1(end,:) = bw1(end-1,:);
bw1(:,1) = bw1(:,2);
bw1(:,end) = bw1(:,end-1);
figure;
imshow(bwskel(logical(bw1)));
title('骨架化,距离变换(matlab自带细化算法)')temp1=zeros(size(bw1));%初始化temp1
bw2=bw1; %初始化图像保留模板
mm=[2 8 4 6];%4个方向
while sum(sum(bw1 - temp1)) ~=0  %没有变化的点(没有删除点),则退出循环temp1 =bw1; % temp1用于判断是否不再有可删除的点for q =1:4 %遍历4个边界for i =2:m+1 %遍历所有行for j = 2:n+1 %遍历所有列if bw2(i,j) ~= 0 %该像素点是否为前景点temp = linyu(bw2,i,j);%获取8邻域if temp(mm(q))==0 && duandian(temp)==1 && simple8(temp)==1 %其中如果在判断边缘点时,将4个方向边界同时判断,则会出现断线,需要分成4次方向bw1(i,j) =0;endend endendbw2=bw1;%放在这里,表示每次只变化一个方向的一层边界,并进行保留,放在4个边界循环的外边,等同于4个方向边界同时判断end
end
toc;
figure ;
imshow(bw1)
title('Rosenfeld细化算法结果')%% 需单独建一个simple8.m
function [d] =simple8(temp)%输入为1*9的序列
%判断8simple ,将temp(i,j)置为0,不改变领域中8个像素点之间的连通性。
%其中temp(i,j)为0时,所有8邻域有值像素点能够保持一个8连通
%则temp(i,j)值从1置为0后则不会影响8邻域像素点的8连通性。
temp(5)=0;
temp = reshape(temp,3,3);
CC1  = bwconncomp(temp,4);
if CC1.NumObjects == 1d=1;%是8simple 删除不影响结构
elsed=0;
end
end
%% 需单独建一个linyu.m
function [a] = linyu(temp,i,j)%获取temp矩阵 i行j列像素点的8邻域
a=[];%a为返回的1*9序列 ,顺序为 先第一行 1 2 3列,在第二行 1 2 3列
for m =-1:1:1for n =-1:1:1a = [a temp(i+m,j+n) ];end
end
end
%% 需单独建一个duandian.m
function[c] = duandian(temp)%输入为1*9的序列
if sum(temp)<=2c=0;%表示为端点或者孤立点 不能删除
elsec=1;%c=0表示不是端点也是孤立点,可以删除
end
end

图片:

Rosenfeld细化算法 matlab(速度超慢)相关推荐

  1. 文字细化算法matlab,[转载](转)二值图像的细化算法和源程序代码(Matlab)

    二值图像的细化算法和源程序代码(Matlab) 有关图像细化算法,从方法上有很多,具体请参看各图像处理的经典教材,但有一本书,我记得是大概1980年代科学出版社出版的,是著名的Pavlidis编著,并 ...

  2. MIT新研究:43%算法改进速度超摩尔定律,解决超大规模问题,算法比硬件更有用...

    博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI 软件算法对计算速度的提升有多大? MIT最新研究说:超过4成算法对性能的改进,已经超过了硬件的摩尔定律. 对于中等规模的问题,30%-43% ...

  3. 文字细化算法matlab,细化算法matlab

    最简单的方法 最简单的方法是用matlab自带的函数: BW2 = bwmorph(BW,'thin',n); n是要细化迭代的次数,也可以是Inf(没有引号).Inf表示算法会一直迭代直到图像不再改 ...

  4. OpenCV学习(14) 细化算法(2)

    前面一篇教程中,我们实现了Zhang的快速并行细化算法,从算法原理上,我们可以知道,算法是基于像素8邻域的形状来决定是否删除当前像素.还有很多与此算法相似的细化算法,只是判断的条件不一样.在综述文章, ...

  5. 速度超Mask RCNN四倍,仅在单个GPU训练的实时实例分割算法

    这个带分割是25帧,有漏检. 速度超Mask RCNN四倍,仅在单个GPU训练的实时实例分割算法 原文:速度超Mask RCNN四倍,仅在单个GPU训练的实时实例分割算法 | 技术头条 https:/ ...

  6. 算法-粒子群算法-Matlab实现

    粒子群算法(Particle Swarm Optimization,PSO)是20世纪90年代兴起的一门学科,因其概念简明.实现方便.收敛速度快而为人所知.粒子群算法的基本思想是模拟鸟群随机搜寻食物的 ...

  7. 中国学霸本科生提出AI新算法:速度比肩Adam,性能媲美SGD,ICLR领域主席赞不绝口

    晓查 乾明 发自 凹非寺  量子位 报道 | 公众号 QbitAI 两位学霸本科生,一位来自北大,一位来自浙大. 他们在实习期间,研究出一种新的AI算法,相关论文已经被人工智能顶级会议ICLR 201 ...

  8. 【机器学习】算法模型自动超参数优化方法

    什么是超参数? 学习器模型中一般有两类参数,一类是可以从数据中学习估计得到,我们称为参数(Parameter).还有一类参数时无法从数据中估计,只能靠人的经验进行设计指定,我们称为超参数(Hyper ...

  9. adam算法效果差原因_信电学院本科生提出AI新算法:速度比肩Adam,性能媲美SGD,ICLR领域主席赞不绝口...

    晓查 乾明 发自 凹非寺  量子位 报道 | 转自公众号 QbitAI 两位学霸本科生,一位来自浙大,一位来自北大. 他们在实习期间,研究出一种新的AI算法,相关论文已经被人工智能顶级会议ICLR 2 ...

最新文章

  1. 矩阵树定理2020HDU多校第6场j-Expectation[位运算+期望]
  2. ajax+jsp自动刷新
  3. asp.net ajax聊天室,ASP.NET MVC4异步聊天室的示例代码
  4. AngularJS之禅
  5. 多平台下的32位和64位Oracle10g下载
  6. 628. Maximum Product of Three Numbers
  7. 如何制作linux系统硬盘,教你制作Linux操作系统的Boot/Root盘
  8. cudnn下载_记录新电脑安装Ubuntu18.04,CUDA, cuDNN全过程
  9. vSAN Health Service-物理磁盘运行状况-物理磁盘运行状况检索问题(2149291)
  10. 如何正确的获得一个view的宽和高
  11. 【手册】Linux User's Manual
  12. Spark入门(一)概述
  13. Python笔记 之 dict模块
  14. 鼠标点击事件对象的clientX、pageX、offsetX、screenX、x
  15. 伦敦国王学院计算机申请要求,2020年伦敦国王学院高级计算机专业研究生申请条件及世界排名|学费介绍...
  16. 单词记忆系统二:音标字符输入(re从字符串中提取音标字符;依序打印音标字符;输入对应序号;替换序号。-> 完成“音标输入”)
  17. 辛瓜地计算机体育英语,体育英语|射箭(Archery)
  18. f2fs系列文章fsck(四)
  19. 彻悟人生,句句肺腑90句
  20. 计算机系统恢复原始状态,电脑系统还原到最初状态步骤方法

热门文章

  1. Docker之Docker概述
  2. 三分钟读懂客户端证书
  3. 【英语】-吞音与连读
  4. 论文理解【IL - 数据增广】 —— Adversarial Imitation Learning with Trajectorial Augmentation and Correction
  5. 教你1个转换小技巧,免费多张jpg合并成pdf
  6. FeignClient调用 Cannot deserialize instance of `java.lang.Boolean` out of START_OBJECT token to
  7. Comparable的compareTo
  8. 网络-4 【http状态码、accept、Content-Type】
  9. 【unity3d】自制天空背景——星球
  10. 深入理解计算机系统--链接