OpenCV iOS 图片处理(2

图片处理:

UIImage* img = [UIImage imageNamed:@"cat"];
    Mat cvImage;
    UIImageToMat(img, cvImage);
    if (!cvImage.empty()) {
        Mat gray;
        cvtColor(cvImage, gray, CV_RGB2GRAY);//变为灰度
        GaussianBlur(gray, gray, cv::Size(5,5), 1.2,1.2);//高斯模糊
        Mat edges;
        Canny(gray, edges, 0, 50);//查找边缘
        cvImage.setTo(Scalar::all(225));//填充白色
        cvImage.setTo(Scalar(0,128,255,255),edges);//修改边缘颜色
        UIImageView* imgId = [[UIImageView alloc]initWithImage:MatToUIImage(cvImage)];
        [self.view addSubview:imgId];
    }

代码分析:
1.首先倒入图片,并将图片转换成cv格式
UIImageToMat(img, cvImage);

image.png

2.通过cvtColor将图片颜色转换为灰度,CV_RGB2GRAY
cvtColor(cvImage, gray, CV_RGB2GRAY);

image.png

3.将灰度图片高斯模糊
目的是为了减少查找的边缘过多
GaussianBlur(gray, gray, cv::Size(5,5), 1.2,1.2);

image.png

4.查找边缘
Canny(gray, edges, 0, 50);

image.png

5.给原图片填充浅灰色
cvImage.setTo(Scalar::all(225));

image.png

6.把检测边缘图修改颜色并粘回图片上
cvImage.setTo(Scalar(0,128,255,255),edges);

image.png

参考: https://blog.csdn.net/zww1984774346/article/details/51180252

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容