从图像列表中选择两个最相似的图像
Choose the two most similar images from a list of images
我正在制作一个程序,将普通图像转换为旧计算机(如 Commodore C64)可以显示的基于图块的图像。
抖动和平铺调色板 selection 代码已经完成,使用 LAB 颜色和自定义位图对象(以表示双精度 RGB 值)。
然而,生成的图像由 1000 个 8x8 像素的图块组成,无法存储到 C64 的图块 RAM(只能存储 256 个独特的图块)中。
我有一个位图列表,其中包含构成图像的 1000 个图块。我想合并两张看起来相似的图像并重复,直到最后只有 256 张。但是,我不知道如何比较两张图片,更糟糕的是,我如何 select 列表中的两张相似图片?
老实说,我在表达我的问题时遇到了问题,因为我什至不知道我应该如何提出我的问题,或者更确切地说,我具体面临的问题是什么。但既然我已经陈述了我的目标,我希望我的问题能够得到理解。
非常感谢!
我将从限制颜色数量开始。
接下来编写一个函数来测量两个图块之间的差异,例如通过添加颜色通道中的差异。
现在从一个阈值开始,遍历您的图块列表 1,建立要使用的图块编号列表 2。 list1 中的第一个图块索引将始终添加到 list2,第二个仅当它与 list2 中的所有图块的差异大于阈值时。
依此类推,直到您超过列表 2 中 256 个图块的限制或处理完列表 1 中的所有图块。
重复使用较小或较大的阈值,直到列表 2 中的图块略少于 256 个为止。
您在搜索过程中构建的 list2 不需要包含位图,而是包含原始列表的整数索引。当搜索结束时,建立一个 list3 作为 List 和一个指向 list3 的新二维数组!
这需要一些时间!
最后当它原则上工作时你可以优化测量功能,可能使用不安全代码或锁位;也可以考虑再次扩大颜色数量。这需要一些实验。
听起来很有趣,祝一切顺利!!
我正在制作一个程序,将普通图像转换为旧计算机(如 Commodore C64)可以显示的基于图块的图像。 抖动和平铺调色板 selection 代码已经完成,使用 LAB 颜色和自定义位图对象(以表示双精度 RGB 值)。 然而,生成的图像由 1000 个 8x8 像素的图块组成,无法存储到 C64 的图块 RAM(只能存储 256 个独特的图块)中。
我有一个位图列表,其中包含构成图像的 1000 个图块。我想合并两张看起来相似的图像并重复,直到最后只有 256 张。但是,我不知道如何比较两张图片,更糟糕的是,我如何 select 列表中的两张相似图片?
老实说,我在表达我的问题时遇到了问题,因为我什至不知道我应该如何提出我的问题,或者更确切地说,我具体面临的问题是什么。但既然我已经陈述了我的目标,我希望我的问题能够得到理解。
非常感谢!
我将从限制颜色数量开始。
接下来编写一个函数来测量两个图块之间的差异,例如通过添加颜色通道中的差异。
现在从一个阈值开始,遍历您的图块列表 1,建立要使用的图块编号列表 2。 list1 中的第一个图块索引将始终添加到 list2,第二个仅当它与 list2 中的所有图块的差异大于阈值时。
依此类推,直到您超过列表 2 中 256 个图块的限制或处理完列表 1 中的所有图块。
重复使用较小或较大的阈值,直到列表 2 中的图块略少于 256 个为止。
您在搜索过程中构建的 list2 不需要包含位图,而是包含原始列表的整数索引。当搜索结束时,建立一个 list3 作为 List 和一个指向 list3 的新二维数组!
这需要一些时间!
最后当它原则上工作时你可以优化测量功能,可能使用不安全代码或锁位;也可以考虑再次扩大颜色数量。这需要一些实验。
听起来很有趣,祝一切顺利!!