AlphaData алтернатива в Matlab

В Matlab начертавам матрица (да я наречем M), използвайки imagesc върху изображение, използвайки imshow. Бих искал M да има известна степен на прозрачност, за да мога действително да видя изображението по-долу. Ето какво правя:

    imshow(img); hold on;
    h = imagesc(M); 
    set(h,'AlphaData',0.4); % set transparency to 40%

Последният ред обаче генерира грешка при стартиране на Linux. Опитвах се да го реша, но изглежда нищо не работи. Чудя се дали има алтернатива на свойството "AlphaData", за да стане прозрачно. Благодаря!

РЕДАКТИРАНЕ: Използвам Matlab R2014a и Java 1.7 на Linux CentOS 6.6


person karl71    schedule 22.07.2015    source източник
comment
Какво връща get(gcf,'renderer')? (Това ще ви каже текущия рендер). И set(gcf,'renderer')? (Това е списъкът с възможни рендери). Опитайте да зададете рендера на различен от този, който използвате в момента. Някои програми за изобразяване не поддържат прозрачност. (На Windows мисля, че само 'opengl' го прави)   -  person Luis Mendo    schedule 22.07.2015
comment
Опитвали ли сте alpha(.4) или дори set(h, 'alpha',.5);?   -  person Iman    schedule 22.07.2015
comment
Благодаря, Луис. Това го реши!   -  person karl71    schedule 22.07.2015
comment
Просто трябваше да стартирам matlab от терминал, извикващ matlab -softwareopengl, за да променя на OpenGL рендър   -  person karl71    schedule 22.07.2015
comment
Публикувай това като отговор? Може да е полезно за потребители на Linux, които имат същия проблем   -  person Luis Mendo    schedule 22.07.2015


Отговори (1)


Както Луис Мендо предложи, просто трябваше да променя рендера. Можеш:

>get(gcf,'renderer'); % to see which render engine is Matlab using
>set(gcf,'renderer'); % to get a list with all the possible renderers in your machine

Така че, поне в Linux, за да промените рендерера, е необходимо да стартирате Matlab от терминал, като го извикате като:

matlab -softwareopengl 

След като това бъде направено, е възможно да се зададе прозрачност в конкретен график, както е показано в описанието на въпроса.

person karl71    schedule 22.07.2015