OpenCV中的C++類和函數都是定義在命名空間cv之內的,因此可以在頭文件中加上usingnamespace cv;這一句,方便編寫操作。
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main()
{
Mat image = imread("C:\\Users\\Lyh\\Desktop\\3.jpg");//使用imread函數從桌面讀入一張圖片(Mat類似於C中的int,用來定義一個類)
imshow("原圖", image);//在"原圖"窗口顯示出讀入的圖片
Mat cyimage, cvimage, blimage, eroimage;
blur(image, blimage, Size(5, 5));//用blur函數進行均值濾波操作,操作後的圖片存在blimage中
imshow("模糊效果圖", blimage);
Mat q = getStructuringElement(MORPH_RECT, Size(10, 10));
//用變量q來存儲getStructuringElement函數獲得的返回值(返回指定形狀和尺寸的結構元素)
erode(image, eroimage, q);//用erode函數進行腐蝕操作,操作後的圖片存在eroimage中
imshow("腐蝕效果圖", eroimage);
cvtColor(image, cvimage, CV_BGR2GRAY);//用cvtColor函數將原圖轉換成灰度圖像,操作後的圖片存在cvimage中
imshow("灰度效果圖", cvimage);
blur(cvimage, cyimage, Size(3, 3));
Canny(cyimage, cyimage, 3, 9, 3);//用canny函數進行邊緣檢測,操作後的圖片存在cyimage中
imshow("邊緣效果圖", cyimage);
waitKey(0);
return 0;
}
編譯運行後的原圖以及圖像處理效果圖!