MATLAB Answers

How to convert image .mat back to the mlreportgen.dom.Image object?

21 views (last 30 days)
John
John on 5 Jan 2021
Edited: John on 19 Jan 2021
In report generator, an Image object can be inserted in the report in this way:
mlreportgen.dom.*
rpt = Document('my_report','pdf');
img = Image('my_image.jpg');
img.Style = {Width('5in'),HAlign('center')};
append(rpt, img);
Now, the image is already read into .mat data with:
read_img = imread('my_image.jpg'); % now, read_img is in 640x480x3 uint8 format
How to create an Image object as above but from this later read_img data?
img = Image(anyway_some_function(read_img));

  0 Comments

Sign in to comment.

Accepted Answer

Sean de Wolski
Sean de Wolski on 19 Jan 2021
You'll need to write the image back to disk as the report generator needs to deserialize it from this format into the report. If the image is in a figure, you can use print, exportgraphics or use my FigureDeployer class which wraps around it and makes it easy.
Alternatively, you could use the Figure command with the mlreportgen.report.* api but this would require changing other things about your reporter structure.

  1 Comment

John
John on 19 Jan 2021
I thought it wasn't beautiful, but did in the same way as yours.

Sign in to comment.

More Answers (1)

Nitin Kapgate
Nitin Kapgate on 13 Jan 2021
You can create an Image Object from the "read_img" data using the following code:
read_img = imread('my_image.jpg'); % Read the image
img = image(read_img);
You can refer to the documentation of "image" function to learn more about it.

  1 Comment

John
John on 19 Jan 2021
This doesn't resolve the issue:
import mlreportgen.dom.*
read_img = imread('my_image.jpg');
img = image(read_img); % this runs, but forces an image display
report_image = Image(img); % this still give error below
What we want is an mlreportgen.dom.Image object. Above command generates the error:
Error using mlreportgen.dom.Image
Invalid input for argument 1 (p0):
Value must be a character vector or string scalar.
Error in Untitled (line 4)
report_image = Image(img);

Sign in to comment.

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by