MATLAB Answers

Figure to Image pixel conversions

4 ビュー (過去 30 日間)
matthias daeumer
matthias daeumer 2020 年 4 月 28 日
回答済み: Vinai Datta Thatiparthi 2020 年 5 月 1 日
If I plot a 100x100 matrix as a surface plot then save it as a jpg or png, then open the jpg/png, the pixel count is a lot different than the 100x100 values I had in the figure (or surface plot).
My question is how does matlab convert between the two (figure/surface plot to image)? I am assuming this probably has nothing to do with the original 100x100 matrix but instead the size of the figure (or surface plot) when it is saved as an image is what matters.

  1 件のコメント

Geoff Hayes
Geoff Hayes 2020 年 4 月 29 日
matthias - please include your code that shows how you are saving the plot (to file). If you are saving it as a figure, do you see the figure (menu, axes, etc.) in the jpg/png when you open it?

Sign in to comment.

回答 (1 件)

Vinai Datta Thatiparthi
Vinai Datta Thatiparthi 2020 年 5 月 1 日
Hello Matthias,
When you try to plot a [100 x 100] data into a surface plot (say, using the function surf), and then store it into an image format (say, .jpg), when you try to load this image into MATLAB again, you will not see the same data as the original [100 x 100] data that you tried to plot.
When you're plotting a surface plot, the values within the matrix correspond to the data that is plotted, but when you save it into an image, the pixel values do not correspond to the data points, but instead to other aspects of an image, such as the color (surface color when plotting with surf), axes, coordinates, etc. The .jpg image is stored as a UINT8 3D matrix. The values stored in these two (surface plot figure and the image) are simply not the same, and do not point to the same data in the first place.
If you want to get the same data, I suggest you store it in the form of a .mat file instead. That way, when you load the .mat file into your workspace again, you get the same exact values.
Hope this helps!

  0 件のコメント

Sign in to comment.

Translated by