OpenCV常用函数及图像处理常用算法

文章目录

  • 学习笔记
    • 设备环境
    • 1.medianBlur(img, img_noise, 3);
    • 2.blur(img, img_box_smooth, Size(3,3));
    • 3.去光算法的比较
    • 4.估计算法生成背景
    • 5.求灰度图像的平均值
    • 6.resize();
    • 7.waitKey()
    • 8.detectMultiScale()
    • 9.rectangle()
    • 10.RECT类

学习笔记

OpenCV常用函数

设备环境

  1. 树莓派 3B
  2. OpenCV 3.4.1

1.medianBlur(img, img_noise, 3);

中值滤波函数
参数为输入图像,输出图像,核矩阵大小

2.blur(img, img_box_smooth, Size(3,3));

模糊滤波函数
参数为输入图像,输出图像,模糊效果

3.去光算法的比较

原图与光背景
OpenCV常用函数及图像处理常用算法_第1张图片
差分与除法对比图
OpenCV常用函数及图像处理常用算法_第2张图片
光纹L、图像I、差分dif、除法div
dif = L - I
div = dif * 255 / L = 255 * ( 1 - ( I / L ) )

4.估计算法生成背景

左图为估计背景,右图为实际背景
OpenCV常用函数及图像处理常用算法_第3张图片
算法代码

/**
 * Calcualte image pattern from an input image
 * @param img Mat input image to calculate the light pattern
 * @return a Mat pattern image
 */
Mat calculateLightPattern(Mat img)
{
  Mat pattern;
  // Basic and effective way to calculate the light pattern from one image
  blur(img, pattern, Size(img.cols/3,img.cols/3));
  return pattern;
}

效果比较好

5.求灰度图像的平均值

输出灰度图像的平均值和通道数
img_noise为Mat型

cout << "Channel: " << img_noise.channels() << endl;
cout<<"mean "<<mean(img_noise)[0]<<endl;

OpenCV常用函数及图像处理常用算法_第4张图片
灰度图像灰度级范围一般从0到255,白色为255,黑色为0。

6.resize();

void cv::resize	(	InputArray 	src,
					OutputArray 	dst,
					Size 	dsize,
					double 	fx = 0,
					double 	fy = 0,
					int 	interpolation = INTER_LINEAR 
)	

将原图像大小改为目的图像大小

resize(src, dst, dst.size(), 0, 0, interpolation);

将原图像大小长宽各缩小一半

resize(src, dst, Size(), 0.5, 0.5, interpolation);

缩小,interpolation使用INTER_AREA;放大,interpolation使用INTER_CUBIC (慢)或INTER_LINEAR(快,也还行)。
官方资料: OpenCV: Geometric Image Transformations.

7.waitKey()

等待n毫秒waitKey(n)
永久等待waitKey(0)

8.detectMultiScale()

void cv::CascadeClassifier::detectMultiScale	(	InputArray 	image,
																			std::vector< Rect > & 	objects,
																			double 	scaleFactor = 1.1,
																			int 	minNeighbors = 3,
																			int 	flags = 0,
																			Size 	minSize = Size(),
																			Size 	maxSize = Size() 
)		

image 灰度图像
objects 识别出来的人脸数组
scaleFactor 参数,指定在每个图像尺度上缩小多少图像大小
minNeighbors 参数,指定每个候选矩形应该保留多少个邻居
flags
minSize 最小可能的对象大小。小于该值的对象将被忽略
maxSize 最大可能的对象大小。大于该值的对象将被忽略。如果maxSize == minSize,模型在单一尺度上进行评估

9.rectangle()

10.RECT类

你可能感兴趣的:(OpenCV)