无法显示从MATLAB中的svg文件修改的png图像文件

时间:2014-09-11 10:19:45

标签: image matlab image-processing svg imshow

我尝试使用此代码将svg图像修改为png

    filename = 'hello';
    inkscapepath = '"my inkscape path"';
    system( [inkscapepath ' ' filename ...
             '.svg --export-area-drawing --export-png=' filename '.png'])

它将创建一个hello.png文件。 如果我用windows picture viewer打开它看起来很好。同样的内容存在。  svg图像为png格式,但分辨率从100x100px更改为60x8。

但是如果使用

在MATLAB中查看它
    imshow('hello.png')

全黑图像作为输出图形。 图像矩阵包含所有等于0的条目

1 个答案:

答案 0 :(得分:2)

这个答案是基于猜测文件只在透明背景上包含黑色图像 比如这一个:

  

Original Image - 在剧透中显示透明度

使用imshow Matlab将透明像素替换为黑色,为避免这种情况,我们可以使用imread加载图像,并使用其他选项将透明像素设置为白色,然后使用imshow < / p>

 RGB = imread('hello.png', 'BackgroundColor', [1,1,1] );
 imshow(RGB);

将文件名传递给imshow

black background

将透明像素设置为白色

enter image description here