【发布时间】:2011-05-20 17:25:01
【问题描述】:
我编写了一个程序,它可以拍摄一张“照片”,并为它选择的每个像素插入一系列其他照片中的图像。选择的图像是平均颜色最接近照片原始像素的照片。
我首先对“库存”图像中每个像素的 rgb 值进行平均,然后将其转换为 CIE LAB,这样我就可以根据人类感知来计算它与相关像素的“接近”程度颜色。
然后我编译了一个图像,其中原始“照片”图像中的每个像素都被替换为“最近的”库存图像。
效果很好,效果很好,但是库存图像大小为 300 x 300 像素,甚至使用“-Xms2048m -Xmx2048m”的虚拟机标志,是的,我知道这是可笑的,在 555 像素 x 540 像素的图像上我可以仅在出现内存不足错误之前替换缩小到 50 像素的库存图片。
所以基本上我正在尝试考虑解决方案。首先,我认为可以通过将原始图像的每 4 个像素(2x2 正方形)平均为一个像素,然后用图像替换这个像素来改善图像效果本身,因为这样小照片在单个打印中会更明显.这也应该允许我以更大的尺寸绘制库存图像。有没有人有这种图像处理的经验?如果是这样,您发现了哪些技巧可以生成漂亮的图像。
最终我认为减少内存错误的方法是重复将图像保存到磁盘并将下一行图像附加到文件中,同时不断地从内存中删除旧的渲染图像集。如何才能做到这一点?是不是和普通的文件追加一样。
我们将不胜感激在这最后一个问题上的任何帮助。
谢谢,
亚历克斯
【问题讨论】:
标签: java image file-io image-processing