其实这篇文章和昨天那篇文章差不多,使用自己写的方法替换了openCV的API。其实都一样,介绍了主要方法的实现(替换UIImageToMat(_imageView.image, mat_img_src);)。
图1、所替换的方法一、创建图片工具类,导入openCV头文件
openCV的头文件一定要放在所有的Apple Header之前,详情前一篇有截图。
图2、类与头文件二:创建颜色空间
第一步:创建一块颜色空间,这里创建的是彩色空间
图3、创建颜色空间三、根据UIImage对象大小去创建Mat对象
图4、创建openCV图片四、创建图片上下文
这一步需要创建一个图形上下文,使用的是Core graphic框架中的:CG_EXTERNCGContextRef__nullableCGBitmapContextCreate(void*__nullabledata,
size_twidth,size_theight,size_tbitsPerComponent,size_tbytesPerRow,
CGColorSpaceRefcg_nullablespace,uint32_tbitmapInfo),目的是保存图片信息。
这个接口的参数比较多,其中。
参数一:数据源
参数二:图片宽
参数三:图片高
参数四:每一个像素占用多大的内存,一个像素点由RGB组成(R:8位G:8位B:8位),即三个字节
参数五:每一行所占用的内存m.step[0]第一行多大内存
参数六:颜色空间
参数七:位图信息 这里使用kCGImageAlphaNoneSkipLast表示没有透明度分量
kCGBitmapByteOrderDefault默认排版
图5、创建的图形上下文五、绘制
图6、绘制图片 图7、参数六、释放上下文和颜色空间所占用的内存
图8、释放内存demo地址:链接: https://pan.baidu.com/s/1c2IPAGK 密码: wmyf
网友评论