1、Matlab的for循环在图像工程中的使用,For循环的原理与格式,for 循环是用在须重复执行且执行次数一定的算式。它的结构如下: for index = array command A end index是指用于定义循环次数所设置的变量。 array是决定循环次数的算式。 command A 是指循环语句块。这里的命令不适用分号则会立即显示执行完循环的结果;使用了分号则不会显示出结果,只是执行了命令。 end是代表for循环使用的结束,不能忘记写入它。,for 循环的使用规则,上述的 for 循环中的指标 (index) 须为是一变数。 如果 array 代表阵列是空无一物,则循环不会被执
2、行,例如 k=1:0。 如果 array 代表阵列是一纯量,则循环会被执行一次,例如 k=1:1。 如果 array 代表阵列是一向量,则循环会被依序的执行,例如 k=1:b, b=1 3 5。 如果 array 代表阵列是一矩阵,则循环会被逐行依序的执行,例如 k=1:B, B=1 2; 3 4。 for 完整的语法为: for k = first:increment:last,其中的 first, increment, last分别为初始值,增量,终止值。而循环被执行的次数由以下的算式决定: floor(last-first)/increment)+1 如果计算得到的值为负,则循环不被执行
3、。注意:当次循环中改变循环变量赋值, 不会代入下次循环, 所以除非在其中用break提前退出 。 如:i = 3; for i = 1:i i=2*i end 输出 i=2 i=4 i=6,break与continue,break break 用在循环语句块中, 只要执行到break语句, Matlab就会退出该循环, 但是它只能退出一层循环, 假如现在有内外两层循环, 在内层循环中执行break只会退出内层的循环. break常和判断语句一起是使用. continue 语句它的作用是用来循环块中, 跳过当次循环中该语句之后的其它语句, 继续下一次循环. 注意它和break的不同, break
4、是彻底退出循环, 而continue只是跳过本次循环的中该语句之后的那些语句, 下一次轮循环照常执行.,例题 依次将图像中的像素全部设置为0,流程图,第一步:打开图像并显示,则结果为:,题外话:彩色图的size函数,这里的3是什么?,3是什么?,3是三个通道的意思。 什么是3个通道? 3个通道就是指RGB。R就是红色,G就是绿色,B就是蓝色。 该图像是彩色图,自然由这三幅2维的叠加而成! 下面我们输入imshow(f(:,:,1),Matlab语言非常灵活,这个函数什么意思?imshow自然是显示函数。第一个“ :”是代表默认输出所有的行数;第二个“ :”代表默认输出所有的列数;“1”代表输出R这个通道,“2”就是G通道,“3”就是B通道。,如何把这个彩色图变成黑白图?,也就是把三通道的彩色图变成二维矩阵。应用函数rgb2gray。这就是所谓的进行“灰度化”。 如何使用?,如何使两幅图同时输出,第二步 使用for循环,第一小步:我们定义变量M和N。,第二小步:for循环的嵌套,第三步 结果显示,结果如下:,第四步 对任意图素访问,例如我们只访问f(99,99),输出结果:,