找到使图像在列表中唯一的像素,您可以改进暴力破解吗?

2023-12-26

假设我有一个字符串列表,其中每个字符串是

  • 正好 4 个字符长并且
  • 在列表中是唯一的。

对于每个字符串,我想确定字符串中使该字符串唯一的字符的位置。

所以对于三个字符串的列表

abcd
abcc
bbcb

对于第一个字符串,我想识别第四个位置的字符d since d不会出现在任何其他字符串的第四个位置。

对于第二个字符串,我想识别第四个位置的字符c.

对于第三个字符串,我想识别第一个位置的字符b并且第四个位置的角色也b.

这可以简明地表示为

abcd -> ...d
abcc -> ...c
bbcb -> b..b

如果您考虑同样的问题,但使用二进制数列表

0101
0011
1111

那么我想要的结果就是

0101 -> ..0.
0011 -> .0..
1111 -> 1...

坚持二进制主题,我可以使用 XOR 来识别哪些位在其中是唯一的two二进制数自

0101 ^ 0011 = 0110

我可以将其解释为在这种情况下第二位和第三位(从左到右读取)在这两个二进制数之间是唯一的。这种技术可能会转移注意力,除非它能以某种方式扩展到更大的列表。

强力方法是依次查看每个字符串,并对每个字符串迭代列表中其余字符串的垂直切片。

所以对于清单

abcd
abcc
bbcb

我会从

abcd

并迭代垂直切片

abcc
bbcb

这些垂直切片在哪里

a | b | c | c
b | b | c | b

或以列表形式“ab”、“bb”、“cc”、“cb”。

这将导致四个比较

a : ab -> . (a is not unique)
b : bb -> . (b is not unique)
c : cc -> . (c is not unique)
d : cb -> d (d is unique)

或简洁地

abcd -> ...d

也许这是一厢情愿的想法,但我有一种感觉,应该有一个优雅且通用的解决方案,适用于任意大的字符串(或二进制数字)列表。但如果有的话,我还没有看到它。

我希望使用此算法从一组唯一图像(位图)中获取最小签名,以便将来有效地识别这些图像。如果不考虑未来的效率,我会使用每个图像的简单散列。

你能改进蛮力吗?

Edit我喜欢的方法是构建像素到图像的映射

sprawl[Tuple<x=10, y=33,color=f1fefd>] => {
     image17,
     image23,
     ...
}

sprawl[Tuple<x=10, y=34,color=f1fef0>] => {
     image11
     ...
}

然后使用该图来识别每个图像的最小签名像素集。

如果一个像素(由 x、y、颜色标识)仅引用一个图像,那么我就找到了该图像的完美(最小)签名。

如果图像没有唯一的像素,情况会更复杂,但由于我知道列表中的所有图像都是唯一的,所以我应该能够组合两个或更多像素引用(但尽可能少)来推断图像。

Update

我一直在为此研究一种算法。我的问题非常类似于this one https://stackoverflow.com/questions/2249908/optimized-ocr-black-white-pixel-algorithm,我把我的算法写成回答这个问题 https://stackoverflow.com/questions/2249908/optimized-ocr-black-white-pixel-algorithm/2873004#2873004。此更新是为了引起仍在关注的任何人的注意(我看到五个书签)。我正在单独研究这个问题,所以欢迎任何和所有的反馈,即使只是为了观察我还没有说清楚!


您可以生成一个二维数组,其中包含每个字符在每个位置 (0-3) 中出现的次数。例如,arr[1,3]将包含数字/字符的次数1出现在最后一个位置。

然后对于每个字符串s,遍历字符串中的所有字符。根据数组,在该位置仅出现一次的字符是该字符串的唯一字符。换句话说,如果arr[s[i], i]==1然后串起来s地位独特i.

这将为您提供线性时间的解决方案,而您给出的算法将花费二次时间。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

找到使图像在列表中唯一的像素,您可以改进暴力破解吗? 的相关文章

  • 为什么这个函数不是纯粹的?

    在维基百科文章中https en wikipedia org wiki Pure function Impure functions https en wikipedia org wiki Pure function Impure func
  • 图像算法上的物体计数

    我又接到学校任务了 这次 我的老师给我的任务是创建算法来计算图片上有多少只鸭子 该图与此类似 我想我应该使用模式识别来搜索上面有多少只鸭子 但我不知道每只鸭子适合哪种图案 我认为你可以通过分割鸭嘴并计算鸭嘴的数量来解决这个问题连接的组件 h
  • 需要FTP文件而不存储解释器文件通过Python保存在本地

    我正在尝试做一些图像解释器并尝试将它们直接存储到 FTP 服务器 但我的步骤是从本地文件夹上传图像 然后将其转换为蒙版图像 然后它将获得最终输出 但是在我的蒙版和最终输出场景中 临时图像被保存在本地 这是我不想要的 但如果不将图像存储在本地
  • 计算具有 3 个循环的算法的复杂度

    我尝试解决以下练习 以下代码片段最坏情况运行时间的增长顺序是什么 作为 N 的函数 int sum 0 for int i 1 i lt N i for int j 1 j lt i i j for int k 1 k lt j j k s
  • 处理流星中的长服务器端计算

    我正在使用 jimp https www npmjs com package jimp https www npmjs com package jimp 在meteor JS中生成图像服务器端 换句话说 我正在使用递归算法 计算 图像的像素
  • 计算字符串的所有子串中子序列的出现次数

    我想编写一个算法来计算字符串的所有子字符串中字符子序列 不相交 出现的总数 下面是一个例子 字符串 jabcohnnyjohnny 后续 约翰尼 包含子序列的子字符串 jabcohnny jabcohnnyj jabcohnnyjo jab
  • 简单的排名算法

    我需要创建一个民意调查 按照项目的好坏顺序创建一个排名列表 我打算向每个用户展示两个项目 让他们选择一个他们认为更好的项目 然后多次重复这个过程 它有点类似于您在社交网络电影 我应该如何根据收到的答案对项目进行排名 看着那 这ELO国际象棋
  • 检测植物图片中的所有分支

    我想知道有什么可以检测下图中的所有绿色树枝 目前我开始应用 Frangi 过滤器 options struct FrangiScaleRange 5 5 FrangiScaleRatio 1 FrangiBetaOne 1 FrangiBe
  • 关于Marching Cubes算法的澄清

    关于Marching Cubes 我对其算法和实现有一些疑问 我已经阅读了 Marching Cubes 的 Paul Bourke 优秀文章以及网站上可用的源代码 但是 我在理解以及如何以自己的方式实现算法方面仍然遇到了一些问题 问题如下
  • Python Pandas:沿一列比较两个数据帧,并返回另一个数据帧中两个数据帧的行内容

    我正在处理两个 csv 文件并作为数据框 df1 和 df2 导入 df1 有 50000 行 df2 有 150000 行 我想将 df2 的 时间 与 df1 求时间差并返回所有列的值 对应相似的行 保存在df3中 时间同步 例如 35
  • 减少非常大图像的文件大小,而不改变图像尺寸

    考虑一个处理可能非常大的 PNG 文件上传的应用程序 所有上传的文件必须存储到磁盘以供以后检索 但是 PNG 文件的大小最大可达 30 MB 但磁盘存储限制规定每个文件的最大大小为 1 MB 问题是获取文件大小高达 30 MB 的输入 PN
  • 如何为多边形创建内部螺旋?

    对于任何形状 我如何在其内部创建类似形状的螺旋 这与边界 使用 Minkowski 和 类似 尽管它会是相同形状的螺旋 而不是在形状内部创建相同的形状 我找到了这个 http www cis upenn edu cis110 13su le
  • 有哪些学习线程编程的好资源? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 随着多核CPU在桌面上的兴起 多线程技能将成为程序员的宝贵资产 您能为想要学习线程编程的程序员推荐一些好的资源 书籍 教程 网站等 吗 看
  • 如何求两个地点的经纬度距离?

    我有一组位置的纬度和经度 怎么找distance从集合中的一个位置到另一个位置 有公式吗 半正矢公式假定地球是球形的 然而 地球的形状更为复杂 扁球体模型会给出更好的结果 如果需要这样的精度 你应该更好地使用文森特逆公式 See http
  • 坐标算法 - 绕中心旋转

    通过查看这张图片 我想您会很好地理解我的问题 图片已删除 网址不再有效 现在返回广告 所以基本上我想要一个函数 它接受一个对象作为参数 并根据我之前添加的对象数量为该对象提供正确的坐标 假设我将所有这些对象添加到一个数组中 objectAr
  • Java 2d 游戏中的路径查找?

    本质上它是我正在开发的一款吃豆人克隆游戏 我有一个 Enemy 类 并创建了该类的 4 个实例 它们都代表游戏的 4 个幽灵 所有幽灵都会在屏幕的随机区域启动 然后它们必须朝着吃豆人角色前进 当玩家控制吃豆人并移动它时 他们应该跟随它并尽可
  • 是否有加权水库采样的算法? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 当数据流中的点具有相关权重时 是否有一种算法可以执行水库采样 Pavlos Efraimidis 和 Paul Spirakis 的算
  • OpenCV 中的 Gabor 内核参数

    我必须在我的应用程序中使用 Gabor 过滤器 但我不知道这个 OpenCV 方法参数值 我想对虹膜进行编码 启动 Gabor 过滤器并获取特征 我想对 12 组 Gabor 参数值执行此操作 然后我想计算 Hamming Dystans
  • 为什么这个算法的Big-O复杂度是O(n^2)?

    我知道这个算法的大O复杂度是O n 2 但我不明白为什么 int sum 0 int i 1 j n n while i lt j sum 即使我们设定了j n n一开始 我们在每次迭代期间递增 i 并递减 j 因此最终的迭代次数不应该比n
  • 如何光栅化旋转矩形(通过 setpixel 在 2d 中)

    我有四个 2d 顶点 A B C D 的旋转矩形 我需要在像素缓冲区中 有效地 光栅化 绘制它 使用 setpixel x y 颜色 怎么做 我正在尝试使用一些代码 例如 convertilg a b c d do up down left

随机推荐

  • 音频单元图暂停和重复

    我一直在尝试使用 Apple 提供的代码来实现音频单元图 IphoneMixerEQGraph测试 http developer apple com library ios samplecode iPhoneMixerEQGraphTest
  • Typescript 与“typeof”相反/反向操作

    Angular 可以按类型查询子组件 在测试中使用它 如下所示 fixture debugElement query By directive ComponentType 现在我想创建一个为我执行此操作的函数 import Componen
  • 从其他类 Objective-C 访问方法

    寻找这个问题的答案 但我还没有找到合适的答案 我希望你们 和女孩 能帮助我 这是针对 iPhone 应用程序的 好吧 我有一个多视图应用程序 每个视图都有自己的类 一切都很愉快 然而 不同的类有时会调用相同的方法 到目前为止 我只是在两个类
  • 尝试批量插入行时发生 Knexjs 错误:获取连接超时。泳池可能已经满了。

    完整错误 Knex 获取连接超时 池可能已满 您是否缺少 transacting trx 调用 我有一个超过 70k 行的 csv json 插入 15k 17k 次后 它停止并抛出上述错误 代码如下 csvtojson colParser
  • Microsoft Graph API 是否支持 Azure AD B2C 的更改通知?

    我正在尝试获取更改通知 以便用户使用连接到 Azure AD B2C 的应用程序 我按照以下教程操作并成功创建了订阅 但我从未收到任何更改通知 https learn microsoft com en us learn modules ms
  • 如何存储长符号计算的结果以供以后使用?

    我的计算是这样的 f x runs fast g x runs fast h x depends on f x g x runs slow 5mins 现在我只需要结果h x 每次我重新启动 mma 时 我基本上都会重做相同的计算以获得h
  • 将 JSON 转换为 .NET 数据集

    我正在编写一个 Java servlet 它使用http json org java http json org java 用于从 mssql 数据库读取一些数据并将结果集转换为 JSON 字符串的库 NET 客户端应用程序正在使用此 JS
  • 如何在Word宏中的TextBox中插入文本

    我在Word中创建了一个文本框 我想在其中插入文本 Sub k Dim Box As Shape Set Box ActiveDocument Shapes AddTextbox Orientation msoTextOrientation
  • 如何在谷歌地图 API v3 中一次仅显示一个信息窗口

    我们可以在谷歌地图中一次仅显示一个信息窗口 并为多个标记显示多个信息窗口吗 意味着 当我单击标记时隐藏 关闭其他信息窗口并仅显示当前标记信息窗口 Thanks 我解决的方法如下 var infoWindowsOpenCurrently A
  • C# 在方法或事件处理程序之间传递变量

    我仍在尝试学习 c 我的问题是如何将变量从 Item1 Click 传递到 Item2 Click 这与在方法之间传递它们是同一件事还是因为它们是事件处理程序而有所不同 public partial class Events System
  • K&R 第 2 版,示例 1.9 字符数组

    我对以下代码中的 getline 函数和参数定义有疑问 代码直接取自 K R 第 1 9 章 字符数组 我已将其逐字复制在这里 问题是 当我按原样编译程序时 出现三个错误 我在最后重现了这些错误 当我在出现错误的三个地方将函数和函数参数定义
  • 从 sql 修改 SSIS 目录中的连接管理器信息

    有没有办法在使用 sql 代码部署后从 ssis 目录更新连接管理器信息 我想先部署没有敏感数据的项目 执行目录 deploy project 然后通过 SQL 将用户名和密码添加到 SSIS 目录项目 有没有办法从以下位置更新连接管理器信
  • 空间域图像卷积

    我正在尝试复制结果这个链接 https stackoverflow com q 38709810 159072 using linear卷积于空间域 图像首先转换为二维double数组 然后进行卷积 图像和内核大小相同 图像在卷积之前进行填
  • 加快用最后一个非 Nan 值替换 NaN

    我想用最后一个非 NaN 值替换向量中的所有 NaN input 1 2 3 NaN NaN 2 output 1 2 3 3 3 2 我想尝试加快已有的循环速度 input 1 2 3 NaN NaN 2 if isnan input 1
  • 单击 Angular 网页中的 TableRow 时出现 StaleElementException

    div class row gridrow clickable ng scope i class col m1 s1 tiny fa fa male i div class col m3 s11 ng binding Allard div
  • 如何删除MySQL中的记录并保留最新日期

    Example table 1 ID Email Answer UpdateDate 1 email protected cdn cgi l email protection 1 2011 07 02 2 email protected c
  • Webpack 错误:configuration.module.rules[0] 有一个未知的属性“query”

    我正在关注这个教程 https www youtube com watch v iWUR04B42Hc https www youtube com watch v iWUR04B42Hc 我知道它的内容已过时 但我认为已将其正确翻译为最新版
  • ASP.Net 移动 Web 表单发生了什么?

    以前 Visual Studio 具有用于移动 Web 表单 而不是移动 SDK 的模板 它们似乎在 Visual Studio 2008 中消失了 我见过的唯一解决方案是从 Omar 下载一些模板 http blogs msdn com
  • Pandas hub_table,按列对值进行排序

    我是 Pandas 的新用户 我喜欢它 我正在尝试在 Pandas 中创建一个数据透视表 一旦我按照我想要的方式获得了数据透视表 我想按列对值进行排名 我附上了 Excel 中的图像 因为以表格格式更容易看到我想要实现的目标 链接到图像 h
  • 找到使图像在列表中唯一的像素,您可以改进暴力破解吗?

    假设我有一个字符串列表 其中每个字符串是 正好 4 个字符长并且 在列表中是唯一的 对于每个字符串 我想确定字符串中使该字符串唯一的字符的位置 所以对于三个字符串的列表 abcd abcc bbcb 对于第一个字符串 我想识别第四个位置的字