Matlab透明PNG(倒置/较小图像)

Matlab透明PNG(倒置/较小图像),matlab,image-processing,colors,alpha-transparency,Matlab,Image Processing,Colors,Alpha Transparency,我正在尝试加载一个透明图像。在代码的第一部分,它似乎工作得很好,但随后失败了。这是密码 for l = 1:4 color = he; color(something ~= l) = 0; A = ((color(:,:,1))); A( all(color == 0, 3 ) ) = 1; file = strcat(file{k}, '.png'); segmented_images{k} = color; transparency{k

我正在尝试加载一个透明图像。在代码的第一部分,它似乎工作得很好,但随后失败了。这是密码

for l = 1:4
    color = he;
    color(something ~= l) = 0;
    A = ((color(:,:,1)));
    A( all(color == 0, 3 ) ) = 1;
    file = strcat(file{k}, '.png');
    segmented_images{k} = color;
    transparency{k} = A;
    chk = segmented_images{k};
    f = imshow(chk);
    set(f, 'AlphaData', transparency{k});
    figure, imshow(chk), title("Working Fine");
end
这里的图像看起来是透明的。 如果我在循环外测试它:

my_alpha = transparency{1};
chk2 = segmented_images{1};
f = imagesc(chk2);
set(f, 'AlphaData', transparency{1});
figure, imshow(chk2),title('transparent Final');    
imwrite(chk2, 'G:\path.png');
我在透明区域看到黑色。如果我这样做:

imwrite(chk2, 'G:\wamp\www\final_check.png', "Alpha", my_alpha);
我能够保存一个透明的图像。我是一个新的颜色处理的事情,所以请原谅我,如果我犯了一个非常愚蠢的错误。多谢各位

编辑 内部循环图像打印两次,第一次为透明,第二次为黑色背景。似乎我没有以正确的方式显示图像。加上标题“工作良好”附在黑色背景图像上,而不是附在另一个图像上

编辑2:

真正的问题是带有alpha通道的图像被颠倒了

结果是:

代码如下:

  figure
  hold on
  h1 = image(segmented_images{1});
  set(h1, 'AlphaData', transparency{1});
  h2 = image(last_image);
  set(h2, 'AlphaData', transparency{2});
  h3 = image(segmented_images{3});
  set(h3, 'AlphaData', transparency{3});
  h4 = image(segmented_images{4});
  set(h4, 'AlphaData', transparency{4});
  hold off;
这里有两个问题:一个是图像较小且倒置。我是否正确地覆盖了它。我又一次怀疑我找不到这是一个愚蠢的错误。任何帮助都将不胜感激

更新:

当我改变

h1=图像(分割的_图像{1})

h1=imshow(分割的_图像{1})

我得到了想要的结果。有人能解释一下,获得处理程序有什么不同吗?我想我需要浏览文档。

要更改y方向,请使用:

set ( axesHandle, 'YDir', 'reverse' )

这并不能完全解决问题,因为图像不仅是颠倒的,而且质量低,而且更小。如果不了解更多关于实际图像的信息,很难回答这个问题。既然如此,您可以在调用image->时指定
XData
YData
属性,这样您就可以强制它们覆盖。