tableをpdfに保存する方法

5 views (last 30 days)
萌香
萌香 on 20 Jun 2022
Answered: Hiro on 21 Jun 2022
こんにちは。
画像処理をしており、
・処理した画像
・画像から検出したオブジェクトのプロパティ値(面積等)を並べたテーブル
・プロパティ値のヒストグラム
をpdfに保存しようとしています。
画像は複数枚あるため、上記処理はfor文内での処理です。
ところがtableのみうまく表示されず、空白のグラフのようなものが表示されてしまいます。
tableを図に変えればよいのかと思い下記のように試みましたが結果は変わりません。
何か方法はありますでしょうか。
stats=regionprops('table',Iclr,'Centroid','Area','MajorAxisLength');
idx=stats.Area>5000;
stats(idx,:)=[];
fig=uifigure;
uit=uitable(fig,'Data',stats);
nexttile;
uit
  2 Comments
萌香
萌香 on 20 Jun 2022
コメントありがとうございます。R2022aを使っております。

Sign in to comment.

Answers (2)

Hernia Baby
Hernia Baby on 20 Jun 2022
おそらくuifigureの範囲指定ができていないことが原因だと思われます。
簡単な例を作りましたので試してください。
clc,clear,close all;
BW = imread('text.png');
stats = regionprops('table',BW,'centroid','Area','MajorAxisLength');
idx = stats.Area > 20;
stats(idx,:)=[];
ここで'Position'を設定することで解決できるはずです。
fig = uifigure('Name','test','Position',[200 200 500 400]);
uit=uitable(fig,'Data',stats,'Position',[10 10 400 350]);
後はexportappで出力すれば完成です
exportapp(fig,'test.pdf')

Hiro
Hiro on 21 Jun 2022
コードを書かなくても、Live Editor の機能を使えば、そのまま pdf 出力ができます。
Live Editor を開いて
% サンプル table データ
filename = 'myCsvTable.dat';
% ;を無しにして table を表示させておきます
T = readtable(filename)
T = 5×6 table
LastName Gender Age Height Weight Smoker ____________ ______ ___ ______ ______ ______ {'Smith' } {'M'} 38 71 176 1 {'Johnson' } {'M'} 43 69 163 0 {'Williams'} {'F'} 38 64 131 0 {'Jones' } {'F'} 40 67 133 0 {'Brown' } {'F'} 49 64 119 0
imshow("football.jpg")
とした後に、リボンから
MATLAB > Live Editor > Export > pdf とすれば、talble もイメージもそのまま pdf 出力されます。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!