How to get the original rgb image from hsv image?
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
Image Analyst
2017-4-9
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
采纳的回答
Image Analyst
2017-4-9
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 个评论
Image Analyst
2017-4-9
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.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Processing and Computer Vision 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!