如何在背景图像上显示背景透明图像

时间:2019-05-28 07:25:27

标签: matlab rotation

我要在仪表板上通过图像旋转车轮,以模拟车辆的车轮。

使手柄的背景透明化是成功的,我尝试使用[hold on]将图像显示在仪表板上。

I = imread('audi_steering.PNG');
for i =1:10

    IY= imread('2016_Audi_A6_30T_instrument_cluster.png');
    imshow(IY);
    hold on;
    I_a=imrotate(I,i,'crop');
    h=imshow(I_a);

    alphadata = I_a<200;
    set(h,'AlphaData',alphadata(:,:,1));

end

不是仅旋转仪表板上图像上绘制的方向盘,绘制方向盘区域的仪表板图像也已部分旋转。

图片就像链接下的图片。(我无法上传图片...) https://drive.google.com/file/d/1Q5AKEhYs-kwL-diZc3SRmSqlOz3N4mlL/view?usp=sharing

1 个答案:

答案 0 :(得分:0)

请勿将set(h,'AlphaData'...imshow一起使用,我认为它应与图形一起使用,而不是图像。

最好更改图像的RGB像素值,并显示修改后的图像。

以下代码示例将图像IY复制到临时图像J,然后从I_a复制元素,其中alphadata = 0

注释:仅当IYI_a具有相同的大小和尺寸时,该代码才有效。

IY = imread('2016_Audi_A6_30T_instrument_cluster.png');

for i = 1:10
    I_a = imrotate(I, i, 'crop');
    alphadata = I_a < 200;
    J = IY; %Copy IY to temporary image J
    J(~alphadata) = I_a(~alphadata); %Replace elements in J where alphadata = 0
    imshow(J);
    pause(1); %Pause between loops
end