显示图像文件

时间:2014-12-15 01:34:34

标签: matlab image-processing

我正在编写一个获得2个参数的matlab方法:uint8图像和灰度级,灰度级大于par_1的所有像素都设置为白色。

如何在完成所有操作后显示图像?

这是我的代码:

function im = function_1(img, par_1)
checkUint8Image = isa(img, 'uint8');
if checkUint8Image
    im = uint8(img);
    [row, column] = size(im);
    im2 = ones(row, column); % white image
    for i=1:row
        for j=1:column
            if(im(i,j) <= par_1)
                im2(i,j) = im(i,j);
            end
        end
    end
    imshow(im2);
else
    disp('im paramter is not a uint8 type');
end

也许有另一种方法可以解决这个问题。

输入: enter image description here

输出: enter image description here

2 个答案:

答案 0 :(得分:1)

我认为您使用par_1的值,其中整个图像设置为1,这就是您获得白色图像的原因,或者您遇到了缩放问题,可以使用{{ 1}} []的参数。

您的功能更短的版本:

imshow

让我们用您的图片和值function im = function_1(img, par_1) validateattributes(img, {'uint8'}, {'2d'}); im=img; im(im > par_1)=1; imshow(im, [], 'InitialMagnification', 'fit'); end 测试它(原始图像的值介于0到255之间,将像素设置为1会使它们看起来是黑色)。我们来试试吧:

100

结果:

Resulting image

答案 1 :(得分:0)

试试这段代码,

  function im = function_1(img, par_1)
  checkUint8Image = isa(img, 'uint8');
  if checkUint8Image
      im = uint8(img);
      [row, column, dim] = size(im);
      im2 = ones(row, column).*255; % white image
      for i=1:row
        for j=1:column
            if(im(i,j) <= par_1)
                im2(i,j) = im(i,j);
            end
        end
     end
     imshow(uint8(im2));
  else
    disp('im paramter is not a uint8 type');
  end

这里im2被投入到uint8中。 还要注意这一行,

im2 = ones(row, column).*255;