Matlab Image Cropping problem
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Sandip Paul
il 18 Gen 2020
Commentato: Sandip Paul
il 19 Gen 2020
Hello Everyone,
I have some issue when I'm trying to crop an image.
I have chosen a RGB Image(256x256) and converted it into grayscale image, then I check out the image pixel values. I have attached here only 8x8 dimension pixel values (shown in fig.1)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/262347/fig1.png)
But when I crop that image using imcrop() command, then I get also that 8x8 pixel but with different values (shown in fig.2).
![fig2.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/262348/fig2.png)
This creates the problem I get the different pixel values from same image when trying to crop that image with a specified dimension and also get differnt pixel values when stored it into a hex file for furthur processing.
Below is my Matlab code:
a =imread('cameraman.tif');
a1=rgb2gray(a);
rect=[1 7 7 7];
i_c = imcrop(a1,rect);
pixel = cell(8,8);
ctr = 1;
ctc = 1;
for R=1:8
for C=1:8
pixel{ctr,ctc}=dec2hex(i_c(R,C));
ctc = ctc+1;
end
ctr = ctr+1;
ctc=1;
end
fid = fopen('cam_data_tif_8.hex', 'wt');
fprintf(fid, '%x\n', i_c);
disp('Text file write done');disp(' ');
fclose(fid);
celldisp(pixel)
disp ([pixel{:}]);
Please reply to me.Thank you.
0 Commenti
Risposta accettata
Image Analyst
il 19 Gen 2020
Attach your cameraman.tif. Evidently you changed the one that ships with MATLAB because that one is not a color image and your code throws an error.
This is what I did to make it work with the official cameraman photo, and it works fine:
a = imread('cameraman.tif');
if ndims(a) >= 3
a1=rgb2gray(a);
else
a1 = a;
end
rect=[1 7 7 7];
i_c = imcrop(a1,rect)
pixel = cell(8,8);
ctr = 1;
ctc = 1;
for R=1:8
for C=1:8
pixel{ctr,ctc}=dec2hex(i_c(R,C));
ctc = ctc+1;
end
ctr = ctr+1;
ctc=1;
end
fid = fopen('cam_data_tif_8.hex', 'wt');
fprintf(fid, '%x\n', i_c);
disp('Text file write done');disp(' ');
fclose(fid);
celldisp(pixel)
disp ([pixel{:}]);
Keep in mind that you are cropping starting at row 7.
4 Commenti
Image Analyst
il 19 Gen 2020
The format for rectangles in MATLAB is [x, y, width, height], or using row and column its [column, row, width, height]. Sometimes I just go super explicit and combine them to say [xLeftColumn, yTopRow, width, height].
Più risposte (1)
Vedere anche
Categorie
Scopri di più su Annotations in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!