Как сделать прозрачное изображение с фоном поверх фонового изображения - PullRequest
0 голосов
/ 28 мая 2019

Я хочу, чтобы растягивающее колесо сюжета вращалось на изображении приборной панели, чтобы имитировать автомобильное колесо.

Создание прозрачного фона ручки уже прошло успешно, и я попробовал imshow изображение на изображении приборной панели, используя[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 голосов
/ 28 мая 2019

Не используйте set(h,'AlphaData'... с imshow Я думаю, что оно предназначено для использования с графиками, а не с изображениями.

Вам лучше изменить значения пикселей RGB изображения и отобразить измененное изображение.

В следующем примере кода скопируйте изображение IY во временное изображение J, затем скопируйте элементы из I_a, где alphadata = 0.

Примечание: код работает, только если IY и I_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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...