具体环境的配置,请参考这位大神

1.图像的腐蚀

主要使用这个函数erode(img,dstImage,element),img为被处理的图像,dstImage处理后的图像,element图像处理的规则

代码示例

#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;

int main()
{
    // 读入一张图片(游戏原画)
    Mat img=imread("F:\\简历\\面试照片.jpg");
    // 创建一个名为 "游戏原画"窗口
    cvNamedWindow("游戏原画");
    // 在窗口中显示游戏原画

    Mat element=getStructuringElement(MORPH_RECT,Size(15,15));
    Mat dstImage;
    erode(img,dstImage,element); //用来图像腐蚀,img为被处理的图像,dstImage处理后的图像,element图像处理的规则
    imshow("游戏原画",dstImage);
    waitKey(60000);
}

处理后的图像

opencv如何将图像的部分区域进行处理_ios

是不是很萌啊,哈哈

2.图像的模糊化

主要使用blur(img,dstImage,Size(15,15))函数 img为被处理的图像,dstImage处理后的图像,Size图像处理后的大小

#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;

int main()
{
    // 读入一张图片(游戏原画)
    Mat img=imread("F:\\简历\\面试照片.jpg");
    // 创建一个名为 "游戏原画"窗口
    cvNamedWindow("游戏原画");
    // 在窗口中显示游戏原画

    Mat element=getStructuringElement(MORPH_RECT,Size(15,15));
    Mat dstImage,edge,grayImage;

    blur(img,dstImage,Size(15,15));  //用来处理图像的模糊化
    imshow("游戏原画",dstImage);
    waitKey(60000);
}

处理后的图像

opencv如何将图像的部分区域进行处理_opencv_02

恩恩,打上码就安全了。

3.图像的边缘检测

主要使用Canny(img,edge,3,9,3);img为被处理的图像,edge代表处理输出的图像,第三个参数和第四个参数表示阈值,这二个阈值中当中的小阈值用来控制边缘连接,大的阈值用来控制强边缘的初始分割即如果一个像素的梯度大与上限值,则被认为是边缘像素,如果小于下限阈值,则被抛弃。如果该点的梯度在两者之间则当这个点与高于上限值的像素点连接时我们才保留,否则删除。

#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;

int main()
{
    // 读入一张图片(游戏原画)
    Mat img=imread("F:\\简历\\面试照片.jpg");
    // 创建一个名为 "游戏原画"窗口
    cvNamedWindow("游戏原画");
    // 在窗口中显示游戏原画

    Mat element=getStructuringElement(MORPH_RECT,Size(15,15));
    Mat dstImage,edge,grayImage;
    Canny(img,edge,3,9,3);
    imshow("游戏原画",edge);
    waitKey(60000);
}

处理后的图像

opencv如何将图像的部分区域进行处理_图像处理_03

好,图片的处理就差不多了,opencv也算了解了一下了,下一篇搞一搞视频处理