啊,为多个图像运行单个matlab代码

时间:2015-05-12 12:08:04

标签: matlab image-processing

我有一个matlab代码。我想在一组图像上执行。 任何人都可以帮我,运行多个图像的代码?

全部谢谢。

一个简单的代码就像在一些图像上半色调一样。

clc;
close all;
clear all;
a=imread('lena-y.png');
inImg = double(a);
[row,col] = size(inImg);
b=zeros(row,col);
error = 0;
for i = 1: row
       for j = 1 : col      
           outImg(i,j) =255*(inImg(i,j)>=123.6);

           error = (inImg(i,j)-outImg(i,j));
           if(j < col)
                inImg(i,j+1) =  (inImg(i,j+1) + (5/16*error)); 
           end;

           if(i < row && j >1 )
               inImg(i+1,j-1) = (inImg(i+1,j-1) + (3/16 *error));
           end;
           if(i<row)
               inImg(i+1,j) = (inImg(i+1,j) + (7/16 *error));
           end;
           if(j < col && i < row)
               inImg(i+1,j+1) = (inImg(i+1,j+1) + (1/16 *error));
           end;
       end;
end;

1 个答案:

答案 0 :(得分:0)

您应该将代码块用作function。将其保存到名为halftone.m的文件中:

function result = halftone(I)
    inImg = double(I);
    [row,col] = size(inImg);
    ...
    ...
end

这允许您在任意数量的图像上调用此函数,因此您只需读取它们并在不同的脚本中轻松调用它:

a=imread('lena-y.png');
result_a = halftone(a);
b=imread('another-image.png');
result_b = halftone(b);

有关脚本,函数和编写程序的更多信息,请参阅本教程:matlab:http://uk.mathworks.com/videos/writing-a-matlab-program-69023.html