Снимок осей в конструкторе приложений для генератора отчетов - Matlab - PullRequest
0 голосов
/ 06 мая 2020

На основании этого вопроса Добавить изображение в отчет PDF , мне было интересно, можно ли сделать снимок осей в конструкторе приложений, чтобы сохранить их в отчете PDF?

Я пробовал приведенный ниже код, но получаю сообщение об ошибке

Ошибка:

Undefined function 'getSnapshotImage' for input arguments of type 'matlab.ui.control.UIAxes'.

Код:

function ButtonPushed(app, event)

    import mlreportgen.dom.*;
    import mlreportgen.report.*

    folder = 'E:/';
    file = 'shapes2.png'
    fullFileName = fullfile(folder, file);

    I= imread(fullFileName); 
    level = graythresh(I);
    BW = imbinarize(I,level);
    imshow( BW ,'Parent', app.UIAxes) 


    filter = {'*.pdf'};
    [file, pathPDF] = uiputfile([folder,filter{1}])


    if file ~= 0 
        d = Document('myPDF','pdf');
        d.OutputPath = [pathPDF,file];
        figure = app.UIAxes;
        snap = Image(getSnapshotImage(app.UIAxes,d));
        img1 = Image(fullFileName); 
        img1.Style = [img1.Style {ScaleToFit}];
        close(d);     
    end 
end

1 Ответ

0 голосов
/ 07 мая 2020

В ошибке упоминается, что вы используете неправильный тип ввода. Когда отображается этот тип ошибки, вы должны проверить сигнатуру функции, чтобы проверить, что она ожидает.

Я предлагаю вам ознакомиться с документацией Mathworks и научиться использовать браузер справки непосредственно из MATLAB (щелкните правой кнопкой мыши функцию имя, затем Помощь при выборе ).

Вы обнаружите, что функция getSnapshotImage принимает в качестве первого аргумента объект mlreportgen.report.Figure, а не a matlab.ui.control.UIAxes объект.

Ссылка: https://www.mathworks.com/help/rptgen/ug/mlreportgen.report.figure.getsnapshotimage.html#d120e37424

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...