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

119 Ansichten (letzte 30 Tage)
K. Taieb
K. Taieb am 24 Jun. 2020
Beantwortet: Image Analyst am 24 Jun. 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!

Akzeptierte Antwort

Kanika Gupta
Kanika Gupta am 24 Jun. 2020
Bearbeitet: Kanika Gupta am 24 Jun. 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 Kommentare
K. Taieb
K. Taieb am 24 Jun. 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 am 24 Jun. 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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Image Analyst
Image Analyst am 24 Jun. 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');

Kategorien

Mehr zu Images finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by