Image BLOB to image
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have a db file, which stores images. I use sqlite to fetch the db file, resulting in single columns vector (uint8) for every image. The vector size of every image are different which i believe is compressed by BLOB algorithms. Any ideas on how to generate human-readable image from these vectors
Below is the data for 8 images. Can't use reshape because the numbers can't be sqrt. In fact, they are all same size- squared images.
0 Kommentare
Antworten (1)
Image Analyst
am 8 Mär. 2023
As you can see they are not all the same size, assuming those are the decompressed sizes. You should be able to use sqrt if they are really square images.
sqrt(658335)
but from the last size, you can see the images are not square. Basically you will have to know the format of your vectors, like the number of rows, columns, and number of color channels each vector encodes. And if you retrieved a vector of bytes that is still compressed, you will have to decompress it first.
3 Kommentare
Image Analyst
am 8 Mär. 2023
If they are still compressed you'd have to know the decompression algorithm. I'm sure there are many and I don't know which needs to be used.
If they are uncompressed you coul try dividing the length by all integers up to sqrt of the length and see which gives you another integer as the output
s = sqrt(vecLength)
for k = 1 : s
imageWidth = vecLength / k;
if imageWidth - floor(imageWidth) == 0
imageHeight = k;
grayimage = reshape(vec, [imageHeight, imageWidth]);
figure;
imshow(grayImage)
axis('on', 'image')
end
end
Siehe auch
Kategorien
Mehr zu Image Processing Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!