【学习 Opencv】—— 常见接口

1. 改变图像大小

OpenCV改变图像大小的操作

1.1 resize

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

各个参数的意义比较直观,但是需要注意的是 dsize 与 fx 和 fy 必须不能同时为零,resize函数的目标大小可以是任意的大小,可以不保持长宽比率,删除的像素或者新增的像素值通过interpolation(内插)控制;
fx,fy分别指水平和垂直方向的比率;如果dsize 为零,则目标图像的大小是通过这两个参数来计算的:目标图像的宽度为原图像的宽度×fx,同理目标图像的高度为原图像的高度×fy;

如果dsize不为零,fx,fy会自动计算:

fx = dsize.width/src.cols;
fy = dsize.height/src.rows;

因此dsize和(fx,fy)只需设置其中一个,另外一个置为零就可以了~~

2. 滤波

2.1 双边滤波

bilateralFilter(InputArray src, OutputArray dst, int d, double sigmaColor, double sigmaSpace, int borderType=BORDER_DEFAULT );  
  • d 表示滤波时像素邻域直径,d为负时由 sigaColor计算得到;d>5时不能实时处理。(对效率有较大的影响)
  • sigmaColor、sigmaSpace非别表示颜色空间和坐标空间的滤波系数sigma。可以简单的赋值为相同的值。<10时几乎没有效果;>150时为油画的效果。
  • borderType可以不指定。

3. 其他

3.1 waitKey

waitKey(x);
  • 第一个参数: 等待x ms,如果在此期间有按键按下,则立即结束并返回按下按键的ASCII码,否则返回-1
  • 如果x=0,那么无限等待下去,直到有按键按下

你可能感兴趣的:(opencv)