Tag: opencv

在iOS应用程序中将Face Emotion识别模型与dlib和openCV一起使用

在上一篇文章中,您了解了如何在python中创建ML模型。 在本教程中,我将向您介绍如何在iOS应用程序中集成相同模型。 为此,您需要基本了解如何创建具有摄像头集成的iOS应用程序以及使用python创建核心ML模型。 步骤1:在xcode中集成核心ML模型 首先,您创建一个使用camera的简单xcode项目。 现在,您需要拖放使用python创建的ML模型(.mlmodel)。 您需要确保检查是否需要复制项目。 这将生成一个快速文件,供以后使用。 步骤2:使用CIDetector检测面部直肠 您可以使用任何框架来检测图像中的实际面部边界。 我更喜欢使用CIDetector。 您需要使用摄像机输出中的图像缓冲区找到CIImage。 通过将这些点作为输入传递给使用相同dlib点创建的MLModel,我们可以预测面部表情。 谢谢。

iOS / Swift中的OpenCV入门

对于不认识的人,OpenCV是计算机视觉开放源代码库。 它是用C ++编写的,这意味着您几乎可以在任何地方使用它。 从桌面应用程序到移动应用程序。 简而言之,OpenCV是: OpenCV(开源计算机视觉库)是一个开源计算机视觉和机器学习软件库。 OpenCV的构建旨在为计算机视觉应用程序提供通用的基础结构,并加速在商业产品中使用机器感知。 作为BSD许可的产品,OpenCV使企业可以轻松地使用和修改代码。 尽管创建新项目并添加pod或框架不是通常的任意任务,但考虑到它的好处,这是一个相当简单的过程。 首先,您可以克隆包含我们将在此处执行的操作的存储库。 在这个项目中,我们将从手机的摄像头获取视频流,并对其应用一些简单的色彩效果,仅用于演示目的。 因此,您需要将必需的权限添加到您的info.plist文件(即NSCameraUsageDescription 。 我们将添加OpenCV框架并将其与Swift一起使用。 首先创建一个项目(du!)。 然后初始化pods: $ cd project_root_directory $ pod init 然后将框架添加到您的Podfile : pod’OpenCV’,’〜> 3.1.0.1′ 不要忘记打开由CocoaPods创建的工作区,而不是打开您创建的项目。 OpenCV对称为Mat的n维密集数组数据类型(而不是UIImages 。 因此,我们需要一种在两者之间进行转换的方法。 为此,我们UIImage添加扩展 UIImage + OpenCV.h UIImage + OpenCV.mm 不要错过.mm扩展名。 它表明它是一个Objective-C ++文件,因此XCode以此进行编译。 否则它将无法正常工作。 接下来,我们将创建一个类,用于从相机获取图像流以进行处理: OpenCVCam.h OpenCVCam.mm 上面的类初始化相机,并处理每一帧。 它没有做任何花哨或复杂的事情,但对于初学者来说,这很好。 好了,图像已处理。 现在怎么办? 现在,我们必须在视图控制器中获取图像,或者将其实际使用或呈现。 为此,我们定义了一个委托(在OpenCVCam.mm ): OpenCVCamDelegate.h 到目前为止并不难,不是吗? 好的,我们差不多完成了。 不过,有一个很小的问题。 […]

iOS-OpenCV和Swift

由 Boris Ohayon 撰写 | 2016年8月24日 今天,我们学习如何在iOS和Swift中使用OpenCV💪 OpenCV是一个用C ++编写的库。 使用Objective-C可以做到这一点,但是使用Swift可以使事情变得更加复杂,但是通过实践,在Swift中使用C ++库是没有问题的。 这是我们要做的: 我们将需要编写一些Objective-C ++,但是对于我们Swift爱好者来说,这没什么大不了的。 让我们开始 ? 步骤1 —下载适用于iOS的OpenCV框架 前往http://opencv.org并下载该框架的最新版本。 我当前正在使用版本2.4.13。 第2步-创建一个新的iOS项目 创建一个新项目,这里没有新内容。 选择Swift作为语言,您就完成了。 第3步-在项目中导入OpenCV 要将库导入项目中,只需将下载的OpenCV文件拖放到Project Navigator中 。 出现此窗口时,请检查复制项目(如果需要) 。 第4步-创建桥接头 该库现在在我们的项目中,但是如前所述,我们无法立即与其进行通信。 我们需要一个桥接头。 通过转到文件>新建>文件 (或⌘N)并在iOS>源中选择Cocoa Touch Class来创建一个Objective-C文件。 将其命名为OpenCVWrapper ,它将成为Objective-C类的子类,该类继承 NSObject 。 当我们在Swift项目中创建Objective-C类时,Xcode很聪明,并建议创建一个桥接标头。 单击创建桥接标题 。 现在,我们创建了三个文件: OpenCVWrapper.h , OpenCVWrapper.m和 -Bridging-Header.h : 第5步—配置桥接头 桥接标头告诉我们的Swift代码可以使用哪些Objective-C的东西。 OpenCVWrapper.h将成为我们Objective-C代码的大门,因此我们将以下行添加到桥接头文件中:

IOS中的人脸检测

过去两天生病使我无法上班。 因此,我决定在iOS上使用OpenCV,最终完成了这个项目,我想与大家分享🙂 这个想法是使用基于Haar特征的级联分类器,该分类器在OpenCV中实现并用于人脸检测。 没什么新鲜的,我已经将各个部分放在一起并获得了以下结果。 在本文中,您可以找到使此工作正常进行的所有步骤。 我还提供了指向每个步骤使用的源的链接。 该项目的主要步骤: 导入OpenCV库并将其配置为xcode项目。 建立一个相机帧提取器,以获取每次可用的帧。 应用detectMultiScale来检测面部并显示结果。 下载最新版本的OpenCV。 你可以在这里找到它, 然后解压缩。 创建一个新的xcode项目。 拖放opencv2.framework文件 在项目内部(您可以创建libs文件夹并将文件拖放到内部)。 4.转到链接的框架和库 ,并确保已链接OpenCV。 如果没有,请按(+)->添加其他…->添加。 您还需要添加如下所示的库。 5.转到构建设置->框架搜索路径 ,并确保opencv2.framework的路径正确。 例如$(PROJECT_DIR)/ face_detection / libs 。 6.创建新的组 ( 文件夹 )并将其命名为class 。 7.内部课程 文件夹执行: 文件 -> 新建 -> 文件 …-> 可口可乐类 -> 名称 : OpencvWrapper , 子类 : NSObject , 语言 : Objective-C -> 下一步 […]

OpenCV代码也可以使用背景色去除文本颜色

我正在尝试使用OpenCV清除图像中的文字。 我正在使用下面的代码 cv::Mat original = [MAOpenCV cvMatGrayFromAdjustedUIImage:image]; cv::GaussianBlur(original, original, cvSize(11,11), 0); cv::adaptiveThreshold(original, original, 255, cv::ADAPTIVE_THRESH_MEAN_C, cv::THRESH_BINARY, 5, 2); image = [MAOpenCV UIImageFromCVMat:original]; original.release(); 这工作正常,但也删除文本颜色。 只是显示大文本的边框。 在这个例子中,我如何保存文本的颜色。 这是原始图像 这是使用此代码转换的图像

目标C swift项目的opencv包装没有看到STL头

我正在按照以下答案关注另一个线程: https : //stackoverflow.com/a/30909377/6293090 当从目标C文件中导入或包含STL头时,编译器无法findSTL头: \#include <opencv2/opencv.hpp> 要么: \#import <opencv2/opencv.hpp> 在我的opencv.m包装编译器找不到包含在opencv.hpp中的头文件,('list'file not found),但是,如果我将C ++文件添加到项目中并使用相同的#include行,精细。 我没有在项目的构build设置中find目标C的单独标题searchpath。 我错过了什么? 谢谢。

OpenCV在iOS中检测圈子

我试图检测图像(包含一个空的板)的圆圈。 我曾尝试使用HoughCircles和minEnclosingCircle但没有运气使用我的iOS应用程序中的代码。 我的代码我试图移植到iOS位于http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/hough_circle/hough_circle.html#hough-circle 有人可以请指出我正确的方向,我如何将此代码转换为Objective C ..

符号(s)找不到build筑i386关于opencv

我正在为ios学习opencv。从github.com/macmade下载示例代码后,我编译并运行程序,一切正常。 但是,当我添加一些opencv代码如下: IplImage* img = 0; int height,width,step,channels; uchar* data; int hIndex,wIndex,cIndex; img = cvLoadImage("tapme.png",CV_LOAD_IMAGE_COLOR); if (!img) { NSLog(@"img cannot load"); return; } height = img->height; width = img->width; step = img->widthStep; channels = img->nChannels; data = (uchar*)img->imageData; NSLog(@"%d:%d:%d:%d",height,width,step,channels); 然后我再次编译程序,一切都可以。 但是当链接发生错误时: Undefined symbols for architecture i386: "_cvLoadImage", referenced from: -[MainViewController showPic:] in MainViewController.o 我已经尝试了几乎所有的方法在stackoverflow,但结果仍然不是很好。 任何人都有一个好主意来修复错误,等待你的帮助,谢谢你。

编译OpenCV for iOS失败 – Cmake失败

我尝试为ios编译OpenCV。 我总是得到这些错误。 我尝试了不同版本的opencv,但结果是一样的。 我运行这个:python平台/ ios / build_framework.py ios_opencv_build 我安装了python,cmake和g ++编译器。 有没有人有一个想法这些错误是什么意思,我应该做什么编译成功? — Setting up iPhoneOS toolchain — iPhoneOS toolchain loaded — Setting up iPhoneOS toolchain — iPhoneOS toolchain loaded — The CXX compiler identification is Clang 5.1.0 — The C compiler identification is Clang 5.1.0 — Performing Test HAVE_CXX_FSIGNED_CHAR CMake Error at /opt/local/share/cmake-2.8/Modules/CMakeCXXInformation.cmake:37 (get_filename_component): get_filename_component […]

将OpenCV-Python转换为C ++ / Objective C

我从@ abid-rahman-k中发现了非常好的代码来检测图像中的一个矩形: OpenCV C ++ / Obj-C:高级平方检测现在代码是在Python中,这里是: import cv2 import numpy as np img = cv2.imread('sof.jpg') img = cv2.resize(img,(500,500)) gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) ret,thresh = cv2.threshold(gray,127,255,0) contours,hier = cv2.findContours(thresh,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE) for cnt in contours: if cv2.contourArea(cnt)>5000: # remove small areas like noise etc hull = cv2.convexHull(cnt) # find the convex hull of contour hull = cv2.approxPolyDP(hull,0.1*cv2.arcLength(hull,True),True) if […]