how to convert a cell array into an image?
10 次查看(过去 30 天)
显示 更早的评论
I fetched an image from sql database but its returning format is like i=[75839 int8] how can i convert it into image plz help me out
0 个评论
采纳的回答
Guillaume
2014-10-5
If the bytes you get are truly a jpg image, you may be able to decode it with java:
jimage = javax.imageio.ImageIO.read(java.io.ByteArrayInputStream(d));
height = jimage.getHeight;
width = jimage.getWidth;
pixels = reshape(typecast(jimage.getData.getDataStorage, 'uint8'), [3,width,height]);
img = cat(3, ...
transpose(reshape(pixels(3,:,:), [width,height])), ...
transpose(reshape(pixels(2,:,:), [width,height])), ...
transpose(reshape(pixels(1,:,:), [width,height])));
12 个评论
更多回答(1 个)
Image Analyst
2014-10-4
编辑:Image Analyst
2014-10-4
You need to take the (badly-named) i and reshape it into a 2 or 3D array, but you need to know the number of rows and columns.
cellContents = cell2mat(i); % Convert from cell to double.
grayImage = reshape(cellContents, [rows, columns]);
imshow(grayImage, []);
8 个评论
Guillaume
2014-10-5
Your image is a png image, not a jpeg. The code I posted in my answer, with the typecast fix, should decode it.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!