资源简介
MATLAB常用图像处理算法演示程序,包含各种常用的图像处理算法

代码片段和文件信息
function rc_new = bound2eight(rc)
%BOUND2EIGHT 将4连接边界转换为8连接边界。
% RC_NEW = BOUND2EIGHT(RC) 将4连接边界转换为8连接边界。
% RC is a P-by-2矩阵 其每行包含图像边界像素的行列坐标。RC必须是一个闭合边界;
% 换句话说,RC的最后一行一定与最后一行相等。 BOUND2EIGHT 删除了对于4连接边界
% 必要但对于8连接边界不必要的边界像素。 RC_NEW是一个Q-by-2矩阵其中Q<=P.
% Copyright 2002-2004 R. C. Gonzalez R. E. Woods & S. L. Eddins
% Digital Image Processing Using MATLAB Prentice-Hall 2004
% $Revision: 1.6 $ $Date: 2003/11/21 14:19:38 $
if ~isempty(rc) & ~isequal(rc(1 :) rc(end :)) %如果边界不连续
error(‘Expected input boundary to be closed.‘); %报错
end
if size(rc 1) <= 3 %如果边界点小于等于3
% 退化情况.
rc_new = rc; %结果即为RC
return;
end
% 删除最后一行,因为闭合边界最后一行与第一行相等
rc_new = rc(1:end - 1 :);
% 删除四个相连的直角turn中间的像素。 我们可以在矢量fashion中这样做,但是
% 不能一次全实现。与函数bwmorph函数中‘thin’算法的方式相似,我们将首先
% 删掉行列坐标均为偶数的四个相连直角反转中间的像素;然后时行坐标为偶数
% 列坐标为奇数的;再然后是行坐标是奇数列坐标偶数的;最后是行列坐标均为奇
% 数的
remove_locations = compute_remove_locations(rc_new); %得到remove的区域
field1 = remove_locations & (rem(rc_new(: 1) 2) == 0) & ...%采用求余数函数得到行列坐标均为偶数的区域
(rem(rc_new(: 2) 2) == 0);
rc_new(field1 :) = []; %删除此区域
remove_locations = compute_remove_locations(rc_new);
field2 = remove_locations & (rem(rc_new(: 1) 2) == 0) & ...%采用求余数函数得到行坐标为偶数,列坐标为奇数的区域
(rem(rc_new(: 2) 2) == 1);
rc_new(field2 :) = []; %删除此区域
remove_locations = compute_remove_locations(rc_new);
field3 = remove_locations & (rem(rc_new(: 1) 2) == 1) & ...%采用求余数函数得到行坐标为奇数,列坐标为偶数的区域
(rem(rc_new(: 2) 2) == 0); %删除此区域
rc_new(field3 :) = []; %删除此区域
remove_locations = compute_remove_locations(rc_new);
field4 = remove_locations & (rem(rc_new(: 1) 2) == 1) & ...%采用求余数函数得到行列坐标均为奇数的区域
(rem(rc_new(: 2) 2) == 1);
rc_new(field4 :) = []; %删除此区域
% Make the output boundary closed again.
rc_new = [rc_new; rc_new(1 :)];
%-------------------------------------------------------------------%
function remove = compute_remove_locations(rc)
% 循环差分.
d = [rc(2:end :); rc(1 :)] - rc;
% d的每行与其循环情况下的下一行做点积。
d1 = [d(2:end :); d(1 :)]; %得到d的移1位循环向量
dotprod = sum(d .* d1 2); %点积后每行元素进行相加
% 东西南北边界点的位置跟随一个直角变换
remove = ~all(d 2) & (dotprod == 0);
%但是我们真的想要删除turn的中间点像素
remove = [remove(end :); remove(1:end - 1 :)];
if ~any(remove) %如果不存在需要删除的点
done = 1; %结束
else %否则
idx = find(remove); %删除此点
rc(idx(1) :) = [];
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-06-02 22:41 数字图像处理MATLAB编程学习及演示软件\
目录 0 2013-06-02 22:41 数字图像处理MATLAB编程学习及演示软件\ImageProcessing\
目录 0 2013-06-02 22:41 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\
目录 0 2013-06-02 22:41 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\
文件 2906 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\bound2eight.m
文件 2601 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\bound2four.m
文件 2039 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\bound2im.m
文件 5480 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\boundaries.m
文件 3085 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\bsubsamp.m
文件 49515 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\classic.jpg
文件 302632 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\code.asv
文件 5450 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\code.fig
文件 295296 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\code.m
文件 2353 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\colorgrad.m
文件 2428 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\colorseg.m
文件 935 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\color_medical.asv
文件 935 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\color_medical.m
文件 792 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\color_medical2.asv
文件 688 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\color_medical2.m
文件 2186 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\color_medical3.m
文件 860 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\color_remote.asv
文件 889 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\color_remote.m
文件 1405 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\connectpoly.m
文件 6622 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\diameter.m
文件 1214 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\edge_gaijinsobel.m
文件 466 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\edge_gauss.asv
文件 520 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\edge_gauss.m
文件 2291 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\edge_kirsch.asv
文件 2291 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\edge_kirsch.m
文件 792 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\edge_prewitt.m
文件 297 2013-01-21 14:59 数字图像处理MATLAB编程学习及演示软件\ImageProcessing-new\ImageProcessing\edge_roberts.asv
............此处省略199个文件信息
- 上一篇:一种针对车载全景系统的图像拼接算法的仿真
- 下一篇:粒子滤波多目标跟踪
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论