一个在ios当中采用ObjectC和opencv来显示图片的实例

前言

在ios中采用ObjectC编程利用opencv来显示一张图片,并简单绘图。听上去似乎不难,但是实际操作下来,却不是非常的容易的。本文较为详细的描述了这个过程,供后续参考。

一、创建ios工程

1.1、选择ios工程类型

1.2、选择接口模式和语言

1.3、基本工程创建完毕

二、导入opencv的ios库

2.1、opencv的ios库的下载

可以从opencv的官网进行下载。

2.2、设置opencv的基础路径

2.3、在Link位置设置opencv库

添加完毕后如图:

  • 加入opencv头文件开始调试

3.1、先加入3个opencv的头文件

在ViewController.m中加入3个头文件,如下图:

3.2、不支持C++造成的错误提示

开始build:

3.2、修改扩展名

扩展名从.m修改为.mm,如下图:

3.4、重新编译通过

如图:

运行后手机上可得一个白板的页面。(如果在运行的过程中提示需要teamID,则填入teamID)

四、图片的现实

4.1、给手机界面添加一个UIImageView

添加UIImageView后的界面如下图:

4.2、增加一个图片资源

将一个图片拖动到工程下面,会有是否需要copy的提示,选择打上勾,如下图:

拖动完成后,如下图:

为何要将图片放入工程当中,作为资源进行使用呢?这是为了突破沙箱机制。方便文件的访问。

4.3、给UIImageView在代码中增加一个引用变量

完成后如下图:

4.4、增加一个图片载入程序

编译通过,运行后发现苹果是紫色的,而非图片原来的红色。所以估计是BGR和RGB的对应关系,B和R调换了。

4.5、对颜色进行调整

增加了一个颜色通道的调换函数后,就可以正常的显示图片了。代码如下图:

4.6、这个程序的关键节点

这个程序的关键节点是MatToUIImage函数,直接来自opencv。声明在ios.h当中非常的方便。前面采用chatgpt和文心一言查询获取的转换函数,屡屡报错非常的不好用。只好放弃了。

这也从侧面说明了目前的大模型还有很多的不足之处。

相关推荐
Python之栈9 小时前
Python 3.13 正式支持 iOS:移动开发的新篇章
python·macos·objective-c·cocoa
鸿蒙布道师10 小时前
鸿蒙NEXT开发Base64工具类(ArkTs)
android·ios·华为·harmonyos·arkts·鸿蒙系统·huawei
美狐美颜sdk12 小时前
美颜SDK兼容性挑战:如何让美颜滤镜API适配iOS与安卓?
android·深度学习·ios·美颜sdk·第三方美颜sdk·视频美颜sdk
Invisible_He12 小时前
iOS自定义collection view的page size(width/height)分页效果
ui·ios·swift·collection
小橙子207715 小时前
一条命令配置移动端(Android / iOS)自动化环境
android·ios·自动化
yidahis15 小时前
iOS启动优化 - 1分钟让你的启动速度降低 1s
ios·客户端
帅次18 小时前
Flutter DropdownButton 详解
android·flutter·ios·kotlin·gradle·webview
无知的前端21 小时前
iOS性能优化:OC和Swift实战指南
ios·性能优化·swift
鸿蒙布道师1 天前
鸿蒙NEXT开发日志工具类(ArkTs)
android·ios·华为·harmonyos·arkts·鸿蒙系统·huawei
lilili啊啊啊1 天前
IOS奔溃日志分析-克魔ios开发助手实战-以支付宝奔溃日志为例
ios