How I can generate an image and modify it with Matlab?

123 vues (au cours des 30 derniers jours)
K. Taieb
K. Taieb le 24 Juin 2020
Hello,
Is it possible to generate an image with defined row and column numbers without going through the generation of a 2D matrix.
Usually, I created the image according to the following code :
A=3000*ones(200,200);
imwrite(A,['image' num2str(1) '.jp2']);
I want generate an image with 200 rows and 200 columns without generate the matrix A.
My second question, how can I modify an element (the value of a pixel) of an image?
Thank you!

Réponse acceptée

Kanika Gupta
Kanika Gupta le 24 Juin 2020
Modifié(e) : Kanika Gupta le 24 Juin 2020
Try using this to create a blank image of desired size
blankimage=zeros(200,200)
imshow(blankimage)
To change value at specific location simply do
blankimage(1,1)=255
  2 commentaires
K. Taieb
K. Taieb le 24 Juin 2020
Thank you!
It is the same problem, when I generate an image with a large matrix, the matrix size exceeds the capacity of my computer. Like in this example:
blankimage=zeros(50000,50000);
imshow(blankimage)
Kanika Gupta
Kanika Gupta le 24 Juin 2020
The maximum size of array supported by Matlab is 10,000. This can be seen
home > preferences > workspace > maximum array size.
If you wish to use it for larger arrays, refer to https://www.mathworks.com/help/matlab/matlab_prog/resolving-out-of-memory-errors.html

Connectez-vous pour commenter.

Plus de réponses (1)

Image Analyst
Image Analyst le 24 Juin 2020
Use the uint16 option in ones to cut down the size by a factor of 4. If you use ones() without it, you're using floating point values and have 8 bytes instead of 2 bytes and uint16.
A = 3000 * ones(200, 200, 'uint16');
imwrite(A, 'image1.jp2');

Catégories

En savoir plus sur Images dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by