【发布时间】:2015-06-22 00:52:20
【问题描述】:
我正在尝试删除从我创建的代码中获得的 png 图片上的白色背景。这是我得到的图片:
我想让白色背景透明,因为我有几张我想使用 imfuse 组合的图像。
我做的是这个(我的图片叫做'A1.png'):
A1=imread('A1.png');
D=zeros(size(A1));
D(A1==255) =1;
imwrite(A1,'A11.png','alpha',D);
但是我收到这样的错误 使用 writepng>parseInputs 时出错 (第 349 行) 'alpha' 的值无效。 预期输入大小为 829x600 当它实际尺寸为 829x600x3 时。
829x600x3 uint8 是 A1 的大小。我知道我需要摆脱 x3 的东西。但我不知道是在我保存图片的时候还是在我的代码中更早的时候。
你们觉得呢?
【问题讨论】:
-
两张图片的尺寸不同。此外,两个框之间的纵横比是不同的。您无法成功地重叠这些图像以使它们完美对齐。由于不同的纵横比,调整图像大小以使其具有相同的尺寸也不起作用。你在这里是SOL……除非你自己真的有RAW图像。我怀疑您对这两个图像都使用了
imshow,然后将图形保存到文件中。不要那样做。保存原始图像,然后将它们重叠。 -
我不明白为什么它们有不同的纵横比,因为我使用相同的代码来创建它们,如果你想看看我可以发给你。如果当我在代码中使用补丁创建图像时,我指定了轴长度,那么它们将是相同的 AR 和大小吗?
-
如果您也可以显示代码,那就太好了。图像大小不同,因此您可以根据需要叠加它们。
-
我现在没有代码,因为我在家但我明天可以展示它,问题是我使用带有一些数据的 excel 文件,所以它不能直接运行,除非你有excel表格
标签: image matlab picturebox imread