一个在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和文心一言查询获取的转换函数,屡屡报错非常的不好用。只好放弃了。

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

相关推荐
JR_Wang24917 分钟前
【iOS Swift Moya 最新请求网络框架封装通用】
网络·ios·swift
张声录12 小时前
【Blackbox Exporter】prober.Handler源码详细分析
ios·iphone·xcode
刘小哈哈哈16 小时前
iOS实现在collectionView顶部插入数据效果
ios·cocoa·xcode
打工人你好1 天前
iOS 逆向学习 - iOS Architecture Core OS Layer
ios
飞yu流星1 天前
C++ 文件操作
开发语言·c++·cocoa
ii_best1 天前
按键精灵ios脚本教程:用函数来实现将图片保存到相册
ios
打工人你好1 天前
iOS 逆向学习 - iOS Security Features:硬件与软件多重防护体系
学习·ios
lichong9511 天前
【Flutter&Dart】页面切换 PageView &PageController(9 /100)
android·flutter·ios·api·postman·postapi·foxapi
打工人你好2 天前
iOS 逆向学习 - iOS Architecture Media Layer
学习·ios
打工人你好2 天前
iOS 逆向学习 - iOS Architecture Cocoa Touch Layer
学习·ios·cocoa