1. 程式人生 > >opencv實現影象鄰域均值濾波、中值濾波、高斯濾波

opencv實現影象鄰域均值濾波、中值濾波、高斯濾波

  1. void CCVMFCView::OnBlurSmooth()//鄰域均值濾波
  2. {
  3. IplImage* in;
  4. in = workImg;
  5. IplImage* out = cvCreateImage(cvGetSize(in),IPL_DEPTH_8U,workImg->nChannels);
  6. cvSmooth(in,out,CV_BLUR,3,workImg->nChannels); // 簡單平均
  7. m_dibFlag=imageReplace(out,&workImg);
  8. Invalidate();
  9. }
void CCVMFCView::OnBlurSmooth()//鄰域均值濾波
{
	IplImage* in;
	in = workImg;
	IplImage* out = cvCreateImage(cvGetSize(in),IPL_DEPTH_8U,workImg->nChannels); 
	cvSmooth(in,out,CV_BLUR,3,workImg->nChannels);  //  簡單平均
	m_dibFlag=imageReplace(out,&workImg); 

	Invalidate();
}

[cpp] view plaincopyprint?
  1. void CCVMFCView::OnMedianSmooth()
  2. {
  3. IplImage* in = workImg;
  4. IplImage* out = cvCreateImage(cvGetSize(in),
  5. IPL_DEPTH_8U,workImg->nChannels);
  6. cvSmooth(in,out,CV_MEDIAN,3,workImg->nChannels); // 中值濾波
  7. m_dibFlag=imageReplace(out,&workImg);
  8. Invalidate();
  9. }
void CCVMFCView::OnMedianSmooth()
{
	IplImage* in = workImg;
	IplImage* out = cvCreateImage(cvGetSize(in),
		IPL_DEPTH_8U,workImg->nChannels); 
	cvSmooth(in,out,CV_MEDIAN,3,workImg->nChannels);  //  中值濾波
	m_dibFlag=imageReplace(out,&workImg);

	Invalidate();
}

[cpp] view plaincopyprint?
  1. void CCVMFCView::OnGaussSmooth()
  2. {
  3. IplImage* in = workImg;
  4. IplImage* out = cvCreateImage(cvGetSize(in),IPL_DEPTH_8U,workImg->nChannels); // 建立輔助點陣圖
  5. cvSmooth(in,out,CV_GAUSSIAN,3,workImg->nChannels); // Gauss 平滑
  6. m_dibFlag=imageReplace(out,&workImg); // 輸出處理結果
  7. Invalidate();
  8. }