how to convert matrix to graysclae image?
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi, I have a matrix that i have extacted using spin images descriptor, it is of size 15x15 :
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/164883/image.png)
I want to display it in gray scale but it doesn't work. I tried to use imshow() like this :
imshow(uint8(spinImages(1,1).spinIm),'DisplayRange',[0 255])
imshow(255-uint8(spinImages(1,1).spinIm),'DisplayRange',[0 255])
and also i used imagesc :
imagesc(255-uint8(spinImages(1,1).spinIm), [0 255])
imagesc(1-uint8(spinImages(1,1).spinIm), [0 255])
imagesc(uint8(spinImages(1,1).spinIm), [0 255])
but worthless. pleaz could you help me.
댓글 수: 6
Adam
2016년 5월 25일
편집: Adam
2016년 5월 25일
imagesc( spinImages(1,1).spinIm );
colormap( flipud(gray) );
will give you a white background and high values as black if that is what you want visually.
Obviously you can also inverse the data itself - it depends if you want the data inverted for other purposes than visualisation too.
채택된 답변
Guillaume
2016년 5월 23일
편집: Guillaume
2016년 5월 23일
" but it doesn't work". In what way?
What you've showed will display the image, possibly not the way you want, but it will display it.
I'll note that the intensity range in your screenshot is up to 3906. Because of the call to uint8, any intensity above 255 will be set to 255. I'm not sure that's what you want.
There's certainly no reason to convert to uint8 if you're going to restrict the display range to [0 255] anyway.
Possibly, you meant:
imshow(spinImages(1,1).spinIm, [])
댓글 수: 3
Guillaume
2016년 5월 25일
If you want to inverse the image:
imshow( max(spinImages(1, 1).spinIm(:)) - spinImages(1,1).spinIm, [])
would be better than the completely unnecessary conversion to uint8.
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!