1
coderluan 2022-01-18 15:12:16 +08:00 1
楼主你可以尝试算一下图像的 PSNR 或者 SSIM ,这些是评价图像质量的标准,拿你和这个和一般的压缩算法对比一下,就知道有没有用了。
|
2
mxT52CRuqR6o5 2022-01-18 15:16:10 +08:00 1
[删除每一个像素(24 位)每个 RGB 值的最后一位(降低对比度)]
那你这压缩率应该为 7/8 啊,看你这 [179.1kb 29.4kb] 压缩前后的尺寸对比应该还有其他操作 |
3
imn1 2022-01-18 15:32:07 +08:00
为何内存复原和文件复原相差那么大?
我没能力做技术评价,只是好奇适用在什么场景 |
4
killeder 2022-01-18 15:39:13 +08:00
这个有损是多损
|
5
Thiece 2022-01-18 16:26:40 +08:00 1
|
6
ReVanTis 2022-01-18 16:28:19 +08:00 1
https://github.com/ZTFtrue/compress-image/blob/main/OpenCV_learn.cpp#L45
如果我没看错的话,你直接把 rgb 的值 /10 了,大概是把每个通道 8 位深的 0-255 的范围(RGB888)降到了 0-25 。 大概也就是降为不到 5 位深(0-31),RGB 总共是不到 15 位深。 这个大概也就比 16 位色(RGB565)差那么一点点。 鉴于 log(2,25) = 4.64...,所以你大概是实现了一个类似于 RGB888 转 RGB 4.6 4.6 4.6 的转码器。 干得漂亮! |
7
c0xt30a 2022-01-19 04:11:25 +08:00
真是简单粗暴。。。
用 KNN 可能更文雅些 |
8
chenzhekl 2022-01-19 11:43:53 +08:00 via iPhone 1
这就是 jpeg 压缩时的 quantization ,不过比 jpeg 做的要简单粗暴。jpeg 利用人眼对亮度敏感、但对色彩不敏感的特性,先把图像转换到 YCbCr 色彩空间,再只对 Cb 和 Cr 分量做 quantization 。理论上 jpeg 要更合理,而且 jpeg 还会做 DCT 、丢弃高频信息,所以 lz 的算法还是比不过 jpeg 的。
|