OpenCV圖像縮放、顏色轉換及二值化操作示例

一、代碼:

//----------------------------描述:包含程序所使用的頭文件和命名空間
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;


//----------------------------【main函數】------------------------------------------------
//  描述:控制檯應用程序的入口函數,我們的程序從這裏開始執行
//---------------------------------------------------------------------------------------
int main()
{
	//----<1>創建原始圖並顯示----
	const char* fPath = "F:\\TuPian\\lena.jpg";
	Mat srcImage_lena, lena2, gasLena, lenaColor, lenaBinary;
	srcImage_lena = imread(fPath);
	//imshow("原始圖像", srcImage_lena);

	//----<2>圖片調整爲原來的2倍.第3個參數爲輸出圖像的大小,第4、5個參數分別是在x 和y軸 上的縮放,默認爲0,最後一個參數通常也是INTER_LINEAR
	resize(srcImage_lena, lena2, Size(), 2.0, 2.0, cv::INTER_LINEAR);  //第3個參數,輸出圖像的大小,Size(srcImage_lena.cols * 2, srcImage_lena.rows * 2)
	
	//----<3>高斯模糊,第三個爲平滑窗口的size, 4、5爲在水平和豎直方向的平滑係數namuda值,最後一個也通常使用默認值
	GaussianBlur(srcImage_lena, gasLena, Size(9, 9), 6, 6, 0);

	//----<4>轉換顏色空間,可以轉化爲yuv,下面是轉化爲灰度圖
	cvtColor(srcImage_lena, lenaColor, COLOR_BGR2GRAY);    // CV_BGR2GRAY是opencv2的用法

	//----<5>二值化。3爲閾值,4爲大於閾值的像素灰度值,5爲二值化類型
	threshold(lenaColor, lenaBinary, 145, 225, THRESH_BINARY);

	//----<6>顯示原始圖像及經過處理的圖像
	imshow("1Lena原始圖像", srcImage_lena);
	imshow("2Lena2圖像大小調整", lena2);
	imshow("3lena3高斯模糊圖像", gasLena);
	imshow("4Lena4灰度圖像", lenaColor);
	imshow("5Lena5二值化圖像", lenaBinary);

	waitKey(0);

	return 0;
}

 

二、結果:

參考:https://blog.csdn.net/zhangpengzp/article/details/77119658 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章