1. 程式人生 > >openCV 程式例項

openCV 程式例項

第一個程式 圖片展示

把一張圖片命名為 “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;
}

在這裡插入圖片描述