您的位置:首页 > 移动开发 > Objective-C

opencv在ios上的简单实现[objective-c&c++]

2017-12-17 11:50 465 查看

网上找过很多资料,不是缺少库的引用就是缺少备注表述

所以自己实现一下并记录下来

//
//  ViewController.m
//  h
//
//  Created by Friderick_Lee on 2017/12/16.
//  Copyright © 2017年 Friderick_Lee. All rights reserved.
//
#import <opencv2/imgproc/types_c.h>
#import <opencv2/opencv.hpp>
#import <OpenCV/opencv2/imgcodecs/ios.h>
#import "ViewController.h"
using namespace cv;
@interface ViewController ()
{
cv::Mat cvImage;
}
@property (weak, nonatomic) IBOutlet UIImageView *imgView;
@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
CGRect rect = [UIScreen mainScreen].bounds;
self.imgView.frame = rect;

UIImage *image = [UIImage imageNamed:@"n.png"];
//将UIImge转换成mat类型方便c++处理
UIImageToMat(image, cvImage);

if(!cvImage.empty()){
cv::Mat gray;
// 将图像转换为灰度显示
cv::cvtColor(cvImage,gray,CV_RGB2GRAY);
// 应用高斯滤波器去除小的边缘
cv::GaussianBlur(gray, gray, cv::Size(5,5), 1.2,1.2);
// 计算与画布边缘
cv::Mat edges;
cv::Canny(gray, edges, 0, 50);
// 使用白色填充
cvImage.setTo(cv::Scalar::all(225));
// 修改边缘颜色
cvImage.setTo(cv::Scalar(0,128,255,255),edges);
// 将Mat转换为Xcode的UIImageView显示
self.imgView.image = MatToUIImage(cvImage);

}
}

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

@end


原图效果



效果图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opencv objective-c ios
相关文章推荐