openCV 程式例項
阿新 • • 發佈:2018-11-09
第一個程式 圖片展示
把一張圖片命名為 “1.jpg” 放進專案檔案下
#include<iostream>
#include"opencv2/opencv.hpp"
using namespace cv;
using namespace std;
int main()
{
Mat srcImage = imread("1.jpg");//載入影象
imshow("【原始圖】", srcImage);//顯示影象
waitKey(0);//等待任意鍵按下
return 0;
}
第二個程式 圖片腐蝕
#include<iostream>
#include "opencv2/opencv.hpp"
using namespace cv;
using namespace std;
int main()
{
Mat srcImage = imread("1.jpg");//載入影象
imshow("【原始圖】", srcImage);//顯示影象
Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
Mat dstImage;
erode(srcImage, dstImage, element);//顯示效果圖
imshow("【腐蝕】", dstImage) ;//顯示影象
waitKey(0);//等待任意鍵按下
return 0;
}
程式首先依然是載入和顯示一幅影象,然後定義一個Mat型別的變數來獲得 getStructuringElement函式的返回值,而getStructuringElement函式的返回值為指 定形狀和尺寸的結構元素(核心矩陣)。引數準備完畢,接著便可以呼叫erode函 數進行影象腐蝕操作,最後呼叫imshow函式進行顯示,用waitKey函式等待按鍵 按下,以便能讓視窗一直顯示,
第三個程式 影象模糊
#include<iostream>
#include "opencv2/opencv.hpp"
using namespace cv;
using namespace std;
int main()
{
Mat srcImage = imread("1.jpg");//載入影象
imshow("【原始圖】", srcImage);//顯示影象
Mat dstImage;
blur(srcImage, dstImage, Size(7, 7));//進行均值濾波(模糊)操作
imshow("【均值濾波】", dstImage);//顯示影象
waitKey(0);//等待任意鍵按下
return 0;
}
canny 邊緣檢測
載入影象,並將其轉換成灰度圖。用blur函式進行影象模糊以降噪,再用Canny函式進行邊緣檢測。最後顯示。
#include<iostream>
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
int main()
{
Mat srcImage = imread("1.jpg");//載入影象
imshow("【原始圖】Canny邊緣檢測", srcImage);//顯示原始圖
Mat dstImage,edge,grayImage;//引數定義
dstImage.create(srcImage.size(), srcImage.type());//建立與src同類型和大小的矩陣(dst)
cvtColor(srcImage, grayImage, COLOR_BGR2GRAY);//將原影象轉換為灰度影象(此程式碼openCV2與openCV3不同,此處為openCV3)
blur(grayImage, edge, Size(3, 3));//使用3x3核心來降噪
Canny(edge, edge, 3, 9, 3);//執行Canny運算元
imshow("【效果圖】Canny邊緣檢測", edge);//顯示影象
waitKey(0);//等待任意鍵按下
return 0;
}