在MATLAB中使“感兴趣区域”(ROI)透明化

时间:2016-09-19 20:41:53

标签: matlab

我已经制作了剪切图像的功能,我剪下的部分有黑色背景。我正在尝试使黑色部分透明,然后我可以生成an image sequence that I can create a video with。我尝试将图像转换为double,然后用NaN替换0值:

J = imread('imgExample.jpg');
J2 = im2double(J);
J2(J2 == 0) = NaN;
imwrite(J2, 'newImg.jpg');

但是当我将其转换为视频时,它似乎并不存在。有没有办法让图像的黑色部分透明?

http://stackoverflow.com/questions/37959756/how-to-accurately-order-the-clusters-based-on-color-in-matlab

1 个答案:

答案 0 :(得分:1)

根据评论中的说明,您正尝试使用matlab创建支持Alpha透明度的视频格式。

一般来说,单独使用matlab似乎是不可能的(至少在matlab 2013中是我使用的版本)。如果您想检查最新的matlab是否支持具有Alpha透明度的视频,请键入doc videowriter并查看可用格式。如果您在那里看到任何带有透明度选项的内容,请从那里开始。但我看到的最多的是24位RGB视频(即三个频道,没有透明度)。

因此,matlab无法生成具有Alpha透明度的原生.avi视频。

然而,请注意,这是一种非常罕见的视频格式,即使您 设法制作了这样的视频,您仍然需要找到一个合适的观看者来支持播放具有透明度的视频!

因此,告诉我们您的特定用例非常重要,因为您可能正在尝试做一些更简单的事情(可能通过matlab解决也可能无法解决)(即XY Problem

的情况

E.g。您可能正在尝试为网络创建一个透明的视频,例如此处https://developers.google.com/web/updates/2013/07/Alpha-transparency-in-Chrome-video

如果是这种情况,那么我建议您尝试在那里概述的方法;你可以创建单独的.png"框架"使用imwrite函数在matlab中具有透明度。看看它的文档,特别是关于png图像和' Alpha'属性。但除此之外,你需要一个外部工具将它们组合成一个.webm文件,因为matlab似乎没有这样的工具(至少没有一个我能一目了然地看到;有可能如果你在网上看,可以成为第三方工具包。

希望这有帮助。