博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
matlab练习程序(区域填充算法,队列版)
阅读量:6472 次
发布时间:2019-06-23

本文共 959 字,大约阅读时间需要 3 分钟。

  其实写过之后我就感觉这个标记和填充基本上是一回事,所以我这里就用了一步法的那个队列算法。也没什么好说的,算法几乎一样,就是细节的区别。还有这里使用了ginput函数。至于堆栈版的实现,看情况吧。

clear all;close all;clc;img=imread('liantong.bmp');img=img>128;img=mat2gray(img);imshow(img);[m n]=size(img);[x y]=ginput();x=round(x);y=round(y);tmp=ones(m,n);queue_head=1;       %队列头queue_tail=1;       %队列尾neighbour=[-1 -1;-1 0;-1 1;0 -1;0 1;1 -1;1 0;1 1];  %和当前像素坐标相加得到八个邻域坐标%neighbour=[-1 0;1 0;0 1;0 -1];     %四邻域用的q{
queue_tail}=[y x];queue_tail=queue_tail+1;[ser1 ser2]=size(neighbour);while queue_head~=queue_tail pix=q{
queue_head}; for i=1:ser1 pix1=pix+neighbour(i,:); if pix1(1)>=1 && pix1(2)>=1 &&pix1(1)<=m && pix1(2)<=n if img(pix1(1),pix1(2))==1 img(pix1(1),pix1(2))=0; q{
queue_tail}=[pix1(1) pix1(2)]; queue_tail=queue_tail+1; end end end queue_head=queue_head+1;endfigure(1);imshow(mat2gray(img));

效果图:

原图

下面是不同的填充效果:

参考:

转载地址:http://syvko.baihongyu.com/

你可能感兴趣的文章
Softmax回归
查看>>
紫书 习题11-11 UVa 1644 (并查集)
查看>>
App工程结构搭建:几种常见Android代码架构分析
查看>>
使用openssl进行证书格式转换
查看>>
ZOJ 3777 Problem Arrangement
查看>>
虚拟机类加载机制
查看>>
Callable和Future
查看>>
installshield12如何改变默认安装目录
查看>>
少用数字来作为参数标识含义
查看>>
ScrollView中嵌套ListView
查看>>
JAVA虚拟机05--面试必问之JVM原理
查看>>
Algs4-2.3.1如何切分数组
查看>>
uva 10815 - Andy's First Dictionary(快排、字符串)
查看>>
观察者模式
查看>>
在properties.xml中定义变量,在application.xml中取值问题
查看>>
js 数组
查看>>
Linux scp命令详解
查看>>
struct和typedef struct
查看>>
cell reuse & disposebag
查看>>
【故障处理】ORA-12545: Connect failed because target host or object does not exist
查看>>