首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >显示图像文件

显示图像文件
EN

Stack Overflow用户
提问于 2014-12-15 01:34:34
回答 2查看 87关注 0票数 0

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

我怎么才能在我所有的动作之后显示一个图像呢?

这是我的密码:

代码语言:javascript
运行
复制
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

也许还有另外一种方法来解决这个问题。

输入:

输出:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-15 02:36:24

我认为您要么为par_1使用一个值,其中整个图像设置为1,这就是为什么您得到一个白色图像,或者您有一个缩放问题,这可以用[]参数来解决给imshow

功能的较短版本:

代码语言:javascript
运行
复制
function im = function_1(img, par_1)
validateattributes(img, {'uint8'}, {'2d'});
    im=img;
    im(im > par_1)=1;
    imshow(im, [], 'InitialMagnification', 'fit');
end

让我们用您的图像和100值来测试它(原始图像的值介于0到255之间,将像素设置为1将使它们看起来黑色)。我们试试看:

代码语言:javascript
运行
复制
Testim=imread('http://i.stack.imgur.com/uJsPY.png');
function_1(Testim, 100);

结果:

票数 1
EN

Stack Overflow用户

发布于 2014-12-15 09:20:26

试试这段代码,

代码语言:javascript
运行
复制
  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中。也注意到这句话,

代码语言:javascript
运行
复制
im2 = ones(row, column).*255;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27476231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档