Я пытаюсь загрузить прозрачное изображение. Кажется, что он работает нормально в первой части кода, но затем не работает. Вот кодMatlab Transparent PNG (Upside Down/Smaller Image)
for l = 1:4
color = he;
color(something ~= l) = 0;
A = ((color(:,:,1)));
A(all(color == 0, 3)) = 1;
file = strcat(file{k}, '.png');
segmented_images{k} = color;
transparency{k} = A;
chk = segmented_images{k};
f = imshow(chk);
set(f, 'AlphaData', transparency{k});
figure, imshow(chk), title("Working Fine");
end
Здесь изображения выглядят прозрачными. Если я проверить его вне цикла:
my_alpha = transparency{1};
chk2 = segmented_images{1};
f = imagesc(chk2);
set(f, 'AlphaData', transparency{1});
figure, imshow(chk2),title('transparent Final');
imwrite(chk2, 'G:\path.png');
Я вижу черный цвет в прозрачной области. Если я это сделаю:
imwrite(chk2, 'G:\wamp\www\final_check.png', "Alpha", my_alpha);
Я могу сохранить прозрачное изображение. Я новичок в этой обработке цвета, поэтому извините меня, если я делаю действительно глупую ошибку. Thank you
EDIT Внутри изображения цикла печатается дважды, первый раз как прозрачный и второй раз с черным фоном. Кажется, я не показываю изображение правильно. Кроме того, название «Working Fine» прикреплено к черному фону не к другому.
EDIT2:
Реальная проблема заключается в том, что изображение с альфа-каналом в настоящее время с ног на голову.
Что я получаю в качестве результата:
Это код:
figure
hold on
h1 = image(segmented_images{1});
set(h1, 'AlphaData', transparency{1});
h2 = image(last_image);
set(h2, 'AlphaData', transparency{2});
h3 = image(segmented_images{3});
set(h3, 'AlphaData', transparency{3});
h4 = image(segmented_images{4});
set(h4, 'AlphaData', transparency{4});
hold off;
Есть две проблемы: один образ меньше и с ног на голову. Я накладываю его правильно. Опять я подозреваю, что это будет глупая ошибка, которую я не могу найти. Любая помощь будет оценена по достоинству.
ОБНОВЛЕНИЕ:
При изменении
h1 = IMAGE (segmented_images {1});
до h1 = imshow(segmented_images{1});
Я получаю желаемые результаты. Может ли кто-нибудь объяснить, как работать с обработчиком? Думаю, мне нужно пройти документацию.
Это не полностью решить эту проблему, так как изображение не только с ногами на голове также низкого качества и меньше. – RBS
, не зная больше о ваших действительных изображениях, трудно ответить на них. Сказав, что вы это делаете, вы можете указать свойства «XData» и «YData» при вызове изображения -> таким образом, чтобы вы могли наложить их. – matlabgui