相关疑难解决方法(0)

许多图像及其调色板的算法

对于一个项目,我正在寻找一种算法,将大量图像转换为调色板图像,这些图像可以共享相同的调色板.


短篇小说

鉴于:

  • 图像列表(RGB),已经具有应该使用的最终颜色.

结果:

  • 图像列表(显示)
  • 调色板列表
  • 通过使用不同的调色板,可以将多个RGB图像转换为一个指示图像.
  • 我想使用所需的最少量调色板所需的最少量图像.

限制:

  • 最多有n个调色板
  • 每个调色板最多有m种颜色
  • 最多可以在结果中生成u图像

我的问题是什么:

  • 我不知道如何构建算法,因此它可以决定先前的决定是否对未来的问题是错误的.(见下文)
  • 我不知道如何解决重新排列调色板颜色和图像数据,因为重新排列一个图像数据可能会导致重新排列的后续问题,这可能会在无休止的重新排列战中结束:D(见下文)

这是完整的故事

结果

因此,这应该是结果:在这种情况下,一个颜色索引表(也称为指示图像)使用两个不同的调色板生成两个不同的RGB图像.

图像渲染过程

第一步

由于输入文件都是RGB图像,我们需要先将它们转换为具有匹配颜色索引的调色板.

在下图中,您可以看到算法如何开始使用前三个图像:

  1. 它们转换调色板颜色索引
  2. 检查两个图像是否共享相同的颜色索引,如果是这样,我们可以重用颜色索引但创建一个调色板(不是必需的!)
  3. 否则,我们可以四种新颜色添加到第一个调色板创建一个新的颜色索引.(此图中未显示)
  4. 对于第三个图像,我们找到了一个已包含所有必需颜色的调色板,因此我们决定重复使用调色板,但重新排列我们的颜色索引以匹配现有调色板.

我们算法的第一步

让我们变得复杂!

到现在为止还挺好.但是我们应该如何继续使用最后一张图片呢?它可以共享前一个的颜色索引,但它与任何现有的调色板都不匹配.实际上它与任何现有的调色板都不匹配.

因此下图描述了实际问题:如何确定最适合图像的内容?创建一个新的调色板,创建一个新的颜色索引,如果我们过去另有决定,一切都会好的怎么办?我们怎么知道?

问题

重新排列

那么,这四个图像仍然是简单的情况.让我们假设算法已经处理了很多图像,并生成了一个调色板.我们的input-image-list中的下一个图像找到一个匹配的调色板,因此它可以很容易地创建新的颜色索引并且没问题.但是:结果应该是最少的图像和调色板,所以可能有另一种方式!

通过检查所有先前的图像,我们发现,我们可以使用前一图像的现有调色板和 …

javascript sorting algorithm image colors

6
推荐指数
1
解决办法
575
查看次数

如何自动识别双峰直方图?

我有一个问题,我从一些数据库图像中收到大量直方图。这些直方图表示为向量 (0...255),我必须识别并使用双峰直方图。

是否有一个公式可以自动识别哪些直方图是双峰的,哪些不是?由于它们是数字向量,我可以使用编程语言(Java/C#)来处理它。

文献中有没有软件识别双峰直方图的标准?


以下是我正在使用的直方图和格式输入的 3 个示例。每个直方图都是一个具有 256 (0...255) 个位置的向量。

Histogram 1
8029, 41, 82, 177, 135, 255, 315, 591, 949, 456, 499, 688, 446, 733, 712, 1595, 2633, 3945, 6134, 9755, 9236, 11911, 11888, 9450, 13119, 8819, 5991, 4399, 6745, 2017, 3747, 1777, 2946, 1623, 2151, 454, 3015, 3176, 2211, 1080, 391, 580, 750, 473, 10424, 334, 559, 621, 340, 2794, 1094, 5274, 2822, 204, 389, 728, 268, 15, 1060, 58, 113, 2728, 52, 3166, 11, 103, 522, 107, …
Run Code Online (Sandbox Code Playgroud)

image-processing histogram

5
推荐指数
1
解决办法
4840
查看次数

如何在二维中对颜色进行排序?

我目前正致力于一个爱好项目,以自动解决流行的手机游戏I Love Hue中的拼图.这个游戏可以在这里找到.

基本上,游戏的整个前提是你会得到一堆彩色的矩形块,这些块以网格形式组织起来.您可以交换大多数块,除了一些用黑点标记的固定块.游戏的目的是交换块周围,以获得二维色谱.对颜色进行排序,使得每个块的颜色大约是其周围颜色的平均值.(对不起,我不知道任何颜色理论,但可能还有一个关于我正在寻找的内容.)这是一个典型的谜题:

IMG

我已经能够通过adb截取屏幕截图,从块中提取RGB矩阵并标记哪些块是"固定的".我遇到了这个问题的实际算法部分的问题.

这是我到目前为止所做的:

  1. 将RGB转换为HSV并按一维列表中的色调对颜色进行排序.这给了我一个谱,但我不知道如何将这个结果转换成二维.
  2. 将颜色留在RGB中并尝试使用单一颜色.我可以在这里做一些多变量微积分,但难点在于某些颜色共享一个或多个RGB值.有必要考虑所有三种颜色.
  3. 使用欧氏距离找到每对颜色之间的距离.据我所知,最终目标是使这个距离在相邻颜色中最小,但二维网格使这更难.
  4. 使用欧几里德距离,我通过查看相邻块的颜色的欧几里德距离,开发了一个关于某个网格理想程度的度量.但是,我找不到一种有效的算法,可以找出达到理想状态所需的交换.

arrays sorting algorithm colors calculus

5
推荐指数
1
解决办法
795
查看次数

保存为 GIF 后图像质量下降

我正在开发一款 iOS 应用程序,它允许用户拍摄一系列照片 - 然后将照片放入动画中并导出为 MP4 和 GIF。

虽然 MP4 呈现源质量,但 GIF 颜色等级是可见的。

这是视觉比较:

动图:动图

MP4MP4

我用于导出为 GIF 的代码:

var dictFile = new NSMutableDictionary();
        var gifDictionaryFile = new NSMutableDictionary();
        gifDictionaryFile.Add(ImageIO.CGImageProperties.GIFLoopCount, NSNumber.FromFloat(0));

        dictFile.Add(ImageIO.CGImageProperties.GIFDictionary, gifDictionaryFile);

        var dictFrame = new NSMutableDictionary();
        var gifDictionaryFrame = new NSMutableDictionary();
        gifDictionaryFrame.Add(ImageIO.CGImageProperties.GIFDelayTime, NSNumber.FromFloat(0f));

        dictFrame.Add(ImageIO.CGImageProperties.GIFDictionary, gifDictionaryFrame);


        InvokeOnMainThread(() =>
    {
        var imageDestination = CGImageDestination.Create(fileURL, MobileCoreServices.UTType.GIF, _images.Length);

        imageDestination.SetProperties(dictFile);

        for (int i = 0; i < this._images.Length; i++)
        {
            imageDestination.AddImage(this._images[i].CGImage, dictFrame);

        }
        imageDestination.Close();
    });
Run Code Online (Sandbox Code Playgroud)

我用于导出为 MP4 的代码:

var videoSettings = new NSMutableDictionary(); …
Run Code Online (Sandbox Code Playgroud)

image-processing gif ios swift

4
推荐指数
1
解决办法
2133
查看次数

将BMP图像转换为绘图仪的指令集?

我有一个像这样的绘图仪: PloterXY设备.

我必须实现的任务是将24位BMP转换为该绘图仪的指令集.在绘图仪中,我可以改变16种常见颜色.我面临的第一个复杂性是颜色减少.我面临的第二个复杂性是如何将像素转换为一组绘图指令.

作为使用油漆的绘图工具刷将被使用.这意味着绘图仪绘制线不会那么小,而且它们会相对较短.

请提出可用于解决此图像数据转换问题的算法?

一些初步结果:

花1  - 减少颜色.

花2  - 减少颜色.

花3  - 减少颜色.

colors image-processing vectorization reduction

3
推荐指数
1
解决办法
728
查看次数