How to get the original rgb image from hsv image?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Kumar Arindam Singh
am 9 Apr. 2017
Kommentiert: Image Analyst
am 9 Apr. 2017
OK, so I have this image(in HSV) which i have got after cropping:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/162763/image.jpeg)
Now,I want to implement the same dimension cropping(i.e. the image width and height should be same as the above image) to my original(uncropped)rgb image,which is:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/162768/image.jpeg)
I used the following code
img1=imread('2.jpg');%this is the original rgb image
[y1,x1] = find(img1);
xmin1 = min(x1(:));
ymin1 = min(y1(:));
xmax1= max(x1(:));
ymax1 = max(y1(:));
width1=xmax1-xmin1+1;
height1=ymax1-ymin1+1;
img2=imread('cropbin1.jpg');%this is the HSV image
[y2,x2] = find(img2);
xmin2 = min(x2(:));
ymin2 = min(y2(:));
xmax2= max(x2(:));
ymax2 = max(y2(:));
width2=xmax2-xmin2+1;
height2=ymax1-ymin2+1;
w3=(width1-width2)/2;
h3=(height1-height2)/2;
out = imcrop(img1,[w3 h3 width2 height2]);
figure,imshow(out);
But, to my horror, the output is showing no image.
Please help.
I would like my original image to be like:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/162773/image.jpeg)
Please suggest any other way by which I can change the HSV image to a rgb image. Thanxxx.......
1 Kommentar
Image Analyst
am 9 Apr. 2017
There are so many things wrong with that code, that it's just faster to give you whole new code than to explain it to you. In the meantime, I fixed your formatting but for the future, please read this: http://www.mathworks.com/matlabcentral/answers/13205#answer_18099
Akzeptierte Antwort
Image Analyst
am 9 Apr. 2017
See attached solution.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/173832/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/173836/image.png)
2 Kommentare
Image Analyst
am 9 Apr. 2017
Not it won't. Just look at it:
xmin1 = min(x1(:));
well x1 is the number of columns multiplied by the number of color channels (3). Why? Just read http://blogs.mathworks.com/steve/2011/03/22/too-much-information-about-the-size-function/ So x1 is 12,960, NOT the number of columns in the image. It's not even an array, so doing this: x1(:) will not do what you thought it did. Lots more problems after that.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Image Processing and Computer Vision finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!