黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Opencv2系列學(xué)習(xí)筆記8(圖像濾波)

系統(tǒng) 2283 0

一:概念:

濾波是信號(hào)處理機(jī)圖像處理中的一個(gè)基本操作。濾波去除圖像中的噪聲,提取感興趣的特征,允許圖像重采樣。

圖像中的頻域和空域: 空間域指用圖像的灰度值來描述一幅圖像 ;而 頻域指用圖像灰度值的變化來描述一幅圖像 。而低通濾波器和高通濾波器的概念就是在頻域中產(chǎn)生的。

低通濾波器指去除圖像中的高頻成分,而高通濾波器指去除圖像中的低頻成分。

后面將介紹低通濾波器—均值和高斯濾波器;中值濾波器—非線性濾波器;高通濾波器—sobel 算子(方向?yàn)V波器)和拉普拉斯變換(二階導(dǎo)數(shù))。其中利用方向?yàn)V波器和拉普拉斯變換可以對圖像的邊緣進(jìn)行檢測。

二:低通濾波器

<1>cv::blur函數(shù): 每個(gè)像素替換為相鄰矩形內(nèi)像素的平均值

<2>cv::GaussianBlur函數(shù): 通過高斯核來進(jìn)行替換

Code:

?

    Mat result;                              // 線性平滑 濾波  每個(gè)像素替換為相鄰矩形內(nèi)像素的平均值

	blur(image, result,Size(5,5));         // filter2D可以自定義核進(jìn)行線性濾波



	Mat gauResult;

	GaussianBlur(image, gauResult, Size(5,5), 1.5);    // 高斯平滑 模糊  線性濾波器
  

?

Result:

sourceImage:

Opencv2系列學(xué)習(xí)筆記8(圖像濾波)

BlurResult:

Opencv2系列學(xué)習(xí)筆記8(圖像濾波)

GaussianBlur:

Opencv2系列學(xué)習(xí)筆記8(圖像濾波)

低通濾波器的效果是對圖像進(jìn)行模糊和平滑,減弱了物體邊緣可見的快速變化。它是一種線性濾波器,原理是與核進(jìn)行卷積運(yùn)算,此時(shí)的核內(nèi)定,當(dāng)我們需要指定核函數(shù)進(jìn)行卷積時(shí)可以用filter2D函數(shù),它的使用見blog: http://blog.csdn.net/lu597203933/article/details/16811851 。?

三:中值濾波器

中值濾波器是非線性濾波器, 它的原理是僅僅計(jì)算這組數(shù)的中值,并用中值替換當(dāng)前的像素值 。因此對于去除椒鹽噪點(diǎn)非常有用。

Code:

?

    Mat medianResult;

	medianBlur(image, medianResult,5);  // 是一個(gè)非線性的濾波器,利用中值替換當(dāng)前的像素值,對于去除椒鹽噪點(diǎn)尤為有用
  

?

Result:

? Opencv2系列學(xué)習(xí)筆記8(圖像濾波)

三:方向?yàn)V波器—sobel算子

Sobel算子就是通過卷積操作來計(jì)算圖像的一階導(dǎo)數(shù),由于邊緣處圖像灰度變化率較大,因此可以用sobel算子來進(jìn)行邊緣檢測。Sobel算子的核定義為:

y坐標(biāo)軸:


x坐標(biāo)軸:


Sobel函數(shù):Sobel(InputArray src, OutputArray dst, int ddepth,

???????????????????????? int dx, int dy, int ksize=3,

???????????????? ???????? double scale=1, double delta=0,

???????????????????????? int borderType=BORDER_DEFAULT );

其中ddepth為圖像類型, (dx,dy) = (1,0)為x方向?qū)?shù),(dx,dy) = (0,1)為y方向?qū)?shù),scale和delta的作用是再保存前可以對圖像進(jìn)行縮放,公式為:dst =dst * scale + delta.

Code:

?

    int main()

{

	Mat image = imread("F:\\lena.png", 0);

	if(!image.data)

	{

		cout << "Fail to load image" << endl;

		return 0;

	}

	Mat sobel_x, sobel_y;

	//Sobel(image, sobel_x, CV_8U, 1, 0, 3, 0.4, 128);

	//Sobel(image, sobel_y, CV_8U, 0, 1, 3, 0.4, 128);



	Sobel(image, sobel_x, CV_16S, 1, 0);  // 因?yàn)楹竺嬉嗉?所以用16位有符號(hào)的整數(shù)來表示  另外導(dǎo)數(shù)肯定含有負(fù)數(shù)

	Sobel(image, sobel_y, CV_16S, 0, 1);

	Mat sobel;

	sobel = abs(sobel_x) + abs(sobel_y);



	double sobmin, sobmax;

	minMaxLoc(sobel, &sobmin, &sobmax);

	Mat sobelImage;

	sobel.convertTo(sobelImage, CV_8U, -255.0/sobmax, 255);   // 等價(jià)于  saturate_cast(a*sobel + b)

	

	Mat sobelThresholded;

	int thre = 200;

	threshold(sobelImage, sobelThresholded, thre, 255, THRESH_BINARY);



	namedWindow("sobelImage", 0);

	imshow("sobelImage", sobelImage);

	namedWindow("sobelThresholded", 0);

	imshow("sobelThresholded", sobelThresholded);



	waitKey(0);

	return 0;

}
  

?

Result:

Opencv2系列學(xué)習(xí)筆記8(圖像濾波)

當(dāng)然除了sobel算子,還有其它的算子,如Scharr算子,它更精確、快。它的核為:

? Opencv2系列學(xué)習(xí)筆記8(圖像濾波)

Sobel(image, sobelX, CV_16S, 1, 0,CV_SCHARR);

或者:

Scharr(image, scharrX, CV_16S, 1, 0, 3);

四:拉普拉斯變換

拉普拉斯變化時(shí)基于圖像導(dǎo)數(shù)的高通濾波器,計(jì)算二階導(dǎo)數(shù)以衡量圖像的彎曲度

Code:

?

    int main()

{

	Mat image = imread("F:\\lena.png", 0);

	if(!image.data)

	{

		cout << "Fail to load image" << endl;

		return 0;

	}

	Mat laplacian;

	Laplacian(image, laplacian, CV_16S, 3);  // 二階導(dǎo)數(shù)肯定含有負(fù)數(shù)。。  基于圖像導(dǎo)數(shù)的高通濾波器,計(jì)算二階導(dǎo)數(shù)以衡量圖像的彎曲度

	laplacian = abs(laplacian);

	Mat laplacianImage;

	laplacian.convertTo(laplacianImage, CV_8U);

	namedWindow("laplacianImage");

	imshow("laplacianImage", laplacianImage);

	waitKey(0);

	return 0;



}
  

?

Result:

Opencv2系列學(xué)習(xí)筆記8(圖像濾波)

作者:小村長 ?出處: http://blog.csdn.net/lu597203933 ?歡迎轉(zhuǎn)載或分享,但請務(wù)必聲明文章出處。 (新浪微博:小村長zack, 歡迎交流!)

?

Opencv2系列學(xué)習(xí)筆記8(圖像濾波)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論