Matlab实现细线化方法

%Thinning
clc
clear all;
I=rgb2gray(imread(‘img\ImageProcess_blk2.jpg‘));
% I=rgb2gray(imread(‘img\horse.png‘));
subplot(121),imshow(I);title(‘Original‘);
Ibw=im2bw(I); %binaryzation
subplot(222),imshow(Ibw);title(‘binaryzation‘);
[row,col]=size(I);

% for i=1:row
% for j=1:col
%
% if I(i,j)>100
% Ibw(i,j)=1;
% else
% Ibw(i,j)=0;
% end
%
% end
% end
% subplot(122),imshow(Ibw);title(‘Original‘);

for i=3:row-2
for j=3:col-2

p0=Ibw(i,j);
p1=Ibw(i,j+1);
p2=Ibw(i-1,j+1);
p3=Ibw(i-1,j);
p4=Ibw(i-1,j-1);
p5=Ibw(i,j-1);
p6=Ibw(i+1,j-1);
p7=Ibw(i+1,j);
p8=Ibw(i+1,j+1);

p9=Ibw(i+1,j+2);
p10=Ibw(i,j+2);
p11=Ibw(i-1,j+2);
p12=Ibw(i-2,j+2);
p13=Ibw(i-2,j+1);
p14=Ibw(i-2,j);
p15=Ibw(i-2,j-1);
p16=Ibw(i-2,j-2);
p17=Ibw(i-1,j-2);
p18=Ibw(i,j-2);
p19=Ibw(i+1,j-2);
p20=Ibw(i+2,j-2);
p21=Ibw(i+2,j-1);
p22=Ibw(i+2,j);
p23=Ibw(i+2,j+1);
p24=Ibw(i+2,j+2);

Np0=p1+p2+p3+p4+p5+p6+p7+p8;
pCenter0=[p1,p2,p3,p4,p5,p6,p7,p8,p1];
pCenter5=[p0,p3,p4,p17,p18,p19,p6,p7,p0];
pCenter7=[p8,p1,p0,p5,p6,p21,p22,p23,p8];
for m=1:8

if (pCenter0(m)==0)&&(pCenter0(m+1)==1)
TCenter0(m)=1;
else
TCenter0(m)=0;
end

if (pCenter5(m)==0)&&(pCenter5(m+1)==1)
TCenter5(m)=1;
else
TCenter5(m)=0;
end

if (pCenter7(m)==0)&&(pCenter7(m+1)==1)
TCenter7(m)=1;
else
TCenter7(m)=0;
end

end
Sp0=sum(TCenter0); %求Sp0
Sp5=sum(TCenter5); %求Sp5
Sp7=sum(TCenter7); %求Sp7

if (2<=Np0&&Np0<=6)&& (Sp0==1)&&(p1*p3*p7==0||Sp5~=1)&&(p3*p5*p7==0||Sp7~=1)
p0=0;
Ibw(i,j)=0;
end

end
end
subplot(122),imshow(~Ibw);title(‘Ibw‘);

时间: 2024-10-29 07:09:43

Matlab实现细线化方法的相关文章

DevExpress的Web控件汉化方法

原文:DevExpress的Web控件汉化方法 项目中用到devexpress的web控件,机器没有安装devexpress控件,直接在项目中引用的dev的dll,项目运行时发现都是英文界面,所以解决汉化问题. 项目中用的是v10.2版本,以此版本为例,其他版本方法应该类似. 步骤如下:   1.从官网下载对应的汉化包,地址:http://www.devexpresscn.com/news/DevExpress-news-94.html,找到对应的版本下载. 2.在下载的汉化文件里找到\Web\

MyEclipse的破解和汉化方法

一.安装和破解 我的MyEclipse是从官网下的正版软件,在其他地方下载的版本同理. 官方下载地址(需翻墙): http://www.myeclipseide.com/module-htmlpages-display-pid-4.html 来自河源下载站的下载地址: http://www.cngr.cn/dir/217/360/2012061984872.html 首先,下载一个MyEclipse,如果是在官网下载的话,在三个版本里面挑一个就行.我用的是第一个.    a.标准版/专业版本:S

Axure7.0汉化方法

下载汉化包 AxureRP7CN_汉化包.rar 首先退出正在运行中的 Axure (如果您正在使用). 将 汉化包.rar 文件解压, 得到 lang 文件夹,  然后将其复制到 Axure 安装目录.然后重新打开Axure,就OK Axure7.0汉化方法,布布扣,bubuko.com

【转】matlab读取文件各种方法

本技术支持指南主要处理:ASCII, binary, and MAT files.要得到MATLAB中可用来读写各种文件格式的完全函数列表,可以键入以下命令: help iofun MATLAB中有两种文件I/O程序:high level and low level. High level routines: 包括现成的函数,可以用来读写特殊格式的数据,并且只需要少量的编程.Low level routines: 可以更加灵活的完成相对特殊的任务,需要较多的额外编程. High level ro

[转]&#39;&#39;\\=DevExpress 中 汉化包 汉化方法

[DevExpress]DevExpress 中 汉化包 汉化方法 2016-02-17 21:13 1781人阅读 评论(0) 收藏 举报  分类: DevExpress(24)  版权声明:本文为博主原创文章,未经博主允许不得转载. 第一步: 在Debug 下添加 zh-CN 汉化包(自行下载) 第二步: 在 Program.cs中添加以下代码 : System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Glob

二值化方法:Minimum Error Thresholding

Kittler二值化方法,是一种经典的基于直方图的二值化方法.由Kittler在1986年在论文“Minimum Error Thresholding”提出. 参考了ImageShop提供的C#版本(http://www.cnblogs.com/Imageshop/p/3307308.html),做了简单修改得到了C++版本的,代码如下: /*灰度图像的二值化方法*/ class CxThreshold { public: static int CalcKittlerMinError(int*

Zabbix 中文汉化方法,与出现乱码解决办法

zabbix 默认为英文界面,可能很多英文不好的朋友们不太习惯使用,下面介绍汉化方法,其实很简单: ### 此处点选 Chinese(zh_CN)即可: 汉化完成后,可能会出现两种乱码: 1.历史记录处出现 ???? 乱码: mysql数据库默认字符集为 latin1,而 zabbix 需要使用 utf8,在初始化创建 zabbix 库时没有指定具体的字符集,倒入三张表时会继承 Mysql 的默认字符集,所以此处会出现乱码: 解决办法如下: 1.将 zabbix 数据库中的表备份: 2.手动删除

open live writer汉化方法

open live writer汉化方法 很多在使用open live writer的朋友,想必都知道,这个软件官方版本是英文版,有时使用起来难免有点尴尬,工作效率方面也受到相应的影响,当然英文比较厉害的大佬除外哈,希望这个汉化方法,可以让更多朋友受益. 汉化方法分为2个步骤:   1.打开链接:汉化文件 进入我的网盘下载名OpenLiveWriter.Localization的压缩包.   2.下载后解压,然后替换你安装openlive writer 位置(例如:C:\Users\Admini

Matlab调用外部库函数方法和注意事项

在MATLAB环境下访问外部函数的共享库文件,必须首先把该库文件加载到内存中.一旦加载成功,就 能直接在MATLAB中直接请求关于函数的任何信息.而当不再需要该库时,就应当及时把库文件从内存 中卸载以节省内存开销. 加载库 加载库加载库 加载库 语法:loadlibrary('shrlib','hfile') 其中shrlib为加载的动态链接库文件名(filename.dll),hfile为头文件名,它包含函数原型.例如,当加载包 含MATLAB中mx程序的libmx库时,可以使用下列语句. h