如何在 iPhone 上将一张图像与另一张图像进行比较,看看它们是否有一定比例的相似度?

2023-12-07

我基本上想用 iPhone 或 iPad 2 上的相机拍摄两张图像,然后将它们相互比较,看看它们是否几乎相同。显然,由于光线等原因,图像永远不会完全相同,因此我想检查大约 90% 的兼容性。

我在这里看到的所有其他类似的问题要么不是针对 iOS 的,要么是针对在图像中定位对象的。我只是想看看两张图片是否相似。

谢谢。


作为一种快速、简单的算法,我建议迭代每个图像中大约 1% 的像素,然后将它们直接相互比较,或者保持运行平均值,然后在最后比较两个平均颜色值。

你可以看看这个答案了解如何确定图像中给定位置的像素颜色。您可能希望对其进行一些优化以更好地适合您的用例(重复查询同一图像),但它应该提供一个良好的起点。

然后你可以使用大致如下的算法:

float numDifferences = 0.0f;
float totalCompares = width * height / 100.0f;
for (int yCoord = 0; yCoord < height; yCoord += 10) {
    for (int xCoord = 0; xCoord < width; xCoord += 10) {
        int img1RGB[] = [image1 getRGBForX:xCoord andY: yCoord];
        int img2RGB[] = [image2 getRGBForX:xCoord andY: yCoord];
        if (abs(img1RGB[0] - img2RGB[0]) > 25 || abs(img1RGB[1] - img2RGB[1]) > 25 || abs(img1RGB[2] - img2RGB[2]) > 25) {
            //one or more pixel components differs by 10% or more
            numDifferences++;
        }
    }
}

if (numDifferences / totalCompares <= 0.1f) {
    //images are at least 90% identical 90% of the time
}
else {
    //images are less than 90% identical 90% of the time
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 iPhone 上将一张图像与另一张图像进行比较,看看它们是否有一定比例的相似度? 的相关文章

  • 如何在第二个 ViewCcontroller 中使用第一个 ViewController 的解析元素?

    在我的应用程序中我发送一个GET到我的服务器并收到一些响应 我有来自主视图控制器类的 TavleView 和 TableViewController 类 我在主 ViewController 中进行解析 我想用从第一个 ViewContro
  • iOS:两个 UIAlert 具有两种不同的委托方法

    我有一个 UIAlert UIAlertView alertView UIAlertView alloc initWithTitle ok message Canc delegate self cancelButtonTitle OK ot
  • 在java中缩放多页TIFF图像

    我想更改多页 TIFF 图像的高度 因此我使用下面的代码片段来缩放它 但它只返回 tiff 文件的第一页 我猜它会将其转换为 JPEG 图像 如何保留文件的所有页面 public static byte scale byte fileDat
  • 创建 UIImageView 的子类

    我还没有找到 UIImageView 在创建 Objective C 类期间从下拉列表中进行选择的选项 我使用的是 xcode 4 3 我想知道我们是否允许扩展 UIImageView 类 或者我必须继承 UIView 自定义 UIImag
  • 视图水平和垂直不明确且布局复杂

    我有一个UIViewController在我的故事板上有 2 个水平并排的子视图 我添加了约束来将前缘和后缘固定为常数 20 点 并添加了另一个约束来保持宽度相等 如果我假设以下内容 应该可以计算每个子视图需要的宽度 子视图不重叠 不存在其
  • 目录中每个文件的循环代码[重复]

    这个问题在这里已经有答案了 我有一个图片目录 我想循环遍历并对其进行一些文件计算 这可能只是睡眠不足 但我如何使用 PHP 来查找给定的目录 并使用某种 for 循环遍历每个文件 Thanks scandir http php net sc
  • 如何裁剪 JavaFX 图像并调整其大小?

    我正在尝试在 JavaFX 画布上显示非常大的图像 单张图像的分辨率为11980x8365 每个图像都有一个相应的世界文件 我可以使用它来正确定位图像 我的画布尺寸是 800x600 有时我需要在画布上写下整个图像 有时只是其中的一部分 这
  • XCode 12.5 缺少权利 com.apple.developer.linked-appclip-app-identifiers

    将 Xcode 版本更新到 12 5 后 我遇到了 App Clip 问题 在 App Store Connect 上传期间 我收到警告 TMS 90876 Missing entitlement This app contains an
  • 从 iPhone 上的 NSString 中删除 HTML 标签

    有几种不同的方法可以删除HTML tags从一个NSString in Cocoa One way http cocoa karelia com Foundation Categories NSString Flatten a string
  • scrollToRowAtIndexPath:atScrollPosition:动画滚动太慢

    基于分页 UIScrollView 的页面更改 我正在调用scrollToRowAtIndexPath atScrollPosition animated到所显示的该页面的表详细信息 void scrollViewDidScroll UIS
  • 使用 UINavigationController 从右向左推送 ViewController

    大家都知道UINavigationController从左到右推送ViewController 有没有办法从右到左推送View 就像后退按钮的动画一样 现在我有这个 self navigationController pushViewCon
  • 当点击 UITableViewCell 的子视图时引发选择事件 (didSelectRowAtIndexPath)

    我创建了一个自定义 UITableViewCell 其中包含许多子视图 在大多数情况下 我希望 UITableViewCell 的控制器来处理事件 在一种情况下 我希望子视图简单地将事件传递给父 UITableViewCell 这将导致它在
  • 让约束在尺寸类别中发挥作用

    所以 我正在 Xcode 6 beta 中尝试尺寸类 我对图像设置了一些限制 使其根据 iPhone 纵向和横向对应的尺寸类别处于不同的位置 这些限制在下图中可见 正如您所看到的 当我处于紧凑 紧凑状态时 一些约束被 安装 而其他约束则没有
  • 我可以使用 NSDateFormatter 将此日期字符串转换为 NSDate 吗?

    我有这个字符串 2010 08 24T16 00 00 05 00 我想从中提取时间部分 即 16 00 并将其转换为 12 小时等效值 即下午 04 00 我正在尝试使用 NSDateFormatter 来完成此任务 但它不起作用 NSD
  • XC测试元组

    我正在尝试构建一个单元测试 如下所示 region is a Double Double tuple XCTAssertEqual region 0 0 200 0 但 Xcode 给我一个错误 Cannot invoke XCTAsser
  • 未安装的应用程序的URL方案

    简单的问题 我正在开发一个将注册自己的 URL 方案的应用程序 我计划通过人们最喜欢的 QRCode 阅读器使用 QRCode 启动该应用程序 我的问题 如果我的应用程序尚未安装在他们的 iPhone iPad 上 会发生什么 他们会被引导
  • 多点触摸检测和区分 - Cocos2d for iPhone

    我想知道如何在多点触摸视图中检测和区分触摸 我读过有关 哈希 代码的内容 但我不明白如何使用它 我想知道我的两个精灵何时被同时触摸 就像在钢琴的两个琴键上按下和弦一样 编辑 以下是我的 TouchesBegan 的示例 void ccTou
  • 需要使用 php 从远程服务器下载与 $_FILES 相同的内容[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 好的 我有处理图像上传的 php 代
  • iPhone,如何将一张图像叠加到另一张图像上以创建要保存的新图像? (水印)

    基本上 我想拍摄用户从照片库中选择的图像 然后应用水印 即右下角的三角形 上面有应用程序名称 我已经在 Photoshop 中用透明层制作了第二张图像 我尝试了一个函数 我不记得它的确切名称 但它涉及 CGIImages 和蒙版 这将两个图
  • 将 Facebook 图片 URL 上传到 Firebase 存储

    我正在尝试将用户的 Facebook 个人资料图片上传到 Firebase 存储 let dictionary result as NSDictionary let data dictionary objectForKey data let

随机推荐

  • PHP headers_list() 未显示所有标头

    根据文档 http php net manual en function headers list php 以及这条评论 http php net manual en function headers list php 110330 php
  • 在 ng-repeat 的每次迭代中执行脚本/函数

    我在这样的元素上使用 ng repeat div style width 1px height 1px aSize div
  • 关于双循环的简单Python代码

    我在 Spyder IDE 上测试了以下 python 代码 认为它会输出二维数组q数量不断增加 从 0 31q 0 0 to q 3 7 但它实际上返回 q 为 24 25 26 27 28 29 30 31 24 25 26 27 28
  • LINQ 查询重用和延迟执行

    我的印象是我可以创建一个 LINQ 查询 然后在更改涉及的参数时重用它 但似乎你无法更改源集合 有人能给我一个很好的解释为什么吗 因为我显然误解了一些基本的东西 这是一些示例代码 var source Enumerable Range 1
  • 基于因子变量中观测值数量的子集化

    如何根据因子变量水平的观察次数进行子集化 我有一个包含 1 000 000 行和近 3000 个级别的数据集 我想用少于 200 个观察值对级别进行子集化 data lt read csv Dropbox Shared data csv s
  • Ubuntu18.04 32 位上的 Visual Studio Code 安装错误:“snap“code”在此体系结构的稳定版本 (i386) 上不可用”

    尝试在 Ubuntu 18 04 32 位上安装 Visual Studio Code 时出现以下错误 error snap code is not available on stable for this architecture i38
  • 如何避免 python 将大数转换为科学记数法?

    我的数据结构如下 1404407396000 484745869385011200 0 1922149633 The nurse from the university said I couldn t go if I don t get a
  • 恢复的数据库缺少视图、存储过程和外键

    我正在尝试使用备份还原在 SQL Management Studio SQL Server Express 中创建数据库的副本 本地到本地 当我这样做时 它会复制表和数据 但忽略视图 存储过程和外键 对象资源管理器 gt 写入并单击 数据库
  • 在 R data.table 中创建虚拟变量

    我正在 R 中处理一个非常大的数据集 并且一直在使用数据帧进行操作 并决定切换到 data tables 以帮助加快操作速度 我无法理解 J 操作 特别是我正在尝试生成虚拟变量 但我无法弄清楚如何在 data tables 中编写条件操作
  • 在运行时将 ADO.Net DataSet 指向不同的数据库?

    我有一个大型 ADO Net 数据集和两个具有不同约束的数据库模式 Oracle 数据集将使用任一模式 但我希望能够告诉数据集在运行时使用哪个模式 通过连接字符串 这可能吗 在 Net 2 0 世界中 您可以在运行时更改表适配器上的连接字符
  • void ** 和 void * 的编译警告

    我有一个关于void and void 我知道这是一个老问题 并且之前在 stackoverflow 中已经被问过 某种程度上 所以问题如下 当我在 ubuntu 10 10 下使用 gcc 4 4 3 编译此代码时 收到以下警告 zz c
  • Android:使用捆绑包在片段之间传递数据

    我正在尝试使用捆绑包在不同活动的片段之间传递数据 我有两个片段 片段 A 附加在活动 A 上 片段 B 附加到另一个活动 活动 B 我需要将编辑文本字符串从片段 A 传递到片段 B 我如何使用捆绑包来实现这一点 有人可以给我一个 kotli
  • CSS背景拉伸到窗口底部?

    我正在帮助重新设计一个网站www liveatsheastadium com test 我试图找出一种方法来获得透明背景 使用background rgba 属性 来拉伸页面的整个高度 无论分辨率如何 我尝试将容器 html 和正文高度设置
  • 在 PowerShell 中设置表格格式以导出为 CSV

    我严重睡眠不足 压力很大 所以这可能非常简单 但我仍然无法弄清楚 我想要导出各种内容 例如服务 进程 防火墙规则 本地用户 以及我需要的任何内容作为 CSV 但是每当我将其导出时 当我打开它时 CSV 在 Excel 中只有 1 列 我只希
  • 为什么使用十六进制?

    嘿 我正在看这段代码http www gnu org software m68hc11 examples primes 8c source html 我注意到在某些情况下他们使用十六进制数字 例如第 134 行 for j 1 val j
  • 使用 bq 将 null 加载到 bigquery 中

    当我使用https developers google com bigquery docs reference v2 tables insert try it上传一个 JSON 文件 但未在所有列中插入所有字段 它被接受 并且我的数据中出现
  • 如何在 Android 中使用 XML 创建多语言应用程序?

    我想创建一个多语言 Android 应用程序 包含三种语言 英语 阿拉伯语和波斯语 我必须在资产文件夹中创建三个 XML 文件并解析它们 然后使用一个用于该语言 请帮我解决我的问题吗 您需要有不同的 strings xml 来支持不同的语言
  • Vue SFC 样式未在 webpack 生产构建中提取

    尝试将 vue 和 SFC 添加到我的 webpack 应用程序中 这
  • stringr包中的Perl正则表达式

    The perl 最新版本的 stringr 中不推荐使用该函数 而是使用regex 但是 我似乎无法复制早期的行为 要将字符串向量的第一个字母大写 可以使用以下方法 name lt c jim john bill str replace
  • 如何在 iPhone 上将一张图像与另一张图像进行比较,看看它们是否有一定比例的相似度?

    我基本上想用 iPhone 或 iPad 2 上的相机拍摄两张图像 然后将它们相互比较 看看它们是否几乎相同 显然 由于光线等原因 图像永远不会完全相同 因此我想检查大约 90 的兼容性 我在这里看到的所有其他类似的问题要么不是针对 iOS