美文网首页
OpenCV-图片叠加-模糊-腐蚀-边缘检测

OpenCV-图片叠加-模糊-腐蚀-边缘检测

作者: challenges_79d9 | 来源:发表于2020-07-26 10:58 被阅读0次

    OpenCV案例

    1.图片叠加

    +(UIImage*)opencvImage:(UIImage*)srcImage dst:(UIImage*)dstImage{

        //第一步:准备两种图片

        Mat mat_image_src;

        UIImageToMat(srcImage, mat_image_src);

        Mat mat_image_dst;

        UIImageToMat(dstImage, mat_image_dst);

         //第二步:创建叠加区域->开辟了一块内存空间

        Mat mat_roi = mat_image_src(Rect2i(0, 0, mat_image_dst.cols, mat_image_dst.rows));

        

        //第三步:图片叠加->加水印->合并之后覆盖原来的图片

        //参数一:第一个图片数组

        //参数二:第一个图片数组->权重

        //参数三:第二个图片数组

        //参数四:第二个图片数组->权重

        //参数五:权重和基础之上标量值

        //参数六:输出数组->输出目标

        //dst = src1*alpha + src2*beta + gamma;

        addWeighted(mat_roi, 0, mat_image_dst, 1, 0, mat_roi);

        

        //第四步:将Mat图片->iOS图片

        return MatToUIImage(mat_image_src);

    }

    +(UIImage*)opencvImageErode:(UIImage*)srcImage{

        //第一步:加载图片

        Mat mat_image_src;

        UIImageToMat(srcImage, mat_image_src);

        

        //案例一:图片腐蚀效果

        //第二步:进行腐蚀操作

        //参数一:腐蚀类型->矩形方式

        //参数二:腐蚀大小->范围(腐蚀单位大小)->腐蚀程度大小

        Mat mat_element = getStructuringElement(MORPH_RECT, Size2i(7, 7));

        //开始腐蚀

        Mat mat_image_dst;

        //参数一:原始图片

        //参数二:腐蚀之后的图片

        //参数三:腐蚀范围

        erode(mat_image_src, mat_image_dst, mat_element);

        

        //案例二:图片模糊效果

    //    Mat mat_image_dst;

    //    blur(mat_image_src, mat_image_dst, Size2i(10, 10));

        

        //案例三:图片边缘检测

    //    //创建和mat_image_src同样大小的OpenCV图片(Mat)

    //    Mat mat_image_dst;

    //    mat_image_dst.create(mat_image_src.size(), mat_image_src.type());

    //

    //    //将图片进行灰度处理

    //    Mat mat_image_gray;

    //    cvtColor(mat_image_src, mat_image_gray, COLOR_BGR2GRAY);

    //

    //    //使用3*3内核来降噪处理

    //    Mat mat_image_edge;

    //    blur(mat_image_gray, mat_image_edge, Size2i(3, 3));

    //

    //    //进行Canny算子处理

    //    Canny(mat_image_edge, mat_image_edge, 3, 9, 3);

        

        //第四步:将OpenCV图片->转成iOS图片

        return MatToUIImage(mat_image_dst);

    }

    相关文章

      网友评论

          本文标题:OpenCV-图片叠加-模糊-腐蚀-边缘检测

          本文链接:https://www.haomeiwen.com/subject/gahplktx.html