一、OpenCV
1、cv2.imread命令,读取图像
img=cv2.imread(filename,flags)
- filename:建议填入绝对路径(该图片文件的完整路径)
- flags:有以下6个
- IMAGE_UNCHANGED = -1,这个标识在新版本中已被废置,可以忽略
- IMAGE_GRAYSCALE = 0,返回灰色图像
- IMAGE_COLOR = 1,返回彩色图像
- IMAGE_ANYDEPTH = 2,若图像深度是16位或者32位,就返回对应深度,否则,返回8位图像
- IMAGE_ANYCOLOR = 4,返回所有颜色
- IMAGE_IGNORE_ORIENTATION = 128,忽略任何旋转
2、cv2.imshow命令,显示图像
cv2.imshow(winname, img)
- winname:字符串,显示窗口的名称。
- img:所显示的 OpenCV 图像,nparray 多维数组。
- cv2.imshow() 函数后可加上函数cv2.waitKey(0),0表示持续时间无限。
3、cv2.namedwindow() 函数
cv2.namedWindow(winname,flags)
- winname:字符串,显示窗口的名称。
- flags:窗口创建模式
- WINDOW_NORMAL或WINDOW_AUTOSIZE:窗口尺寸可变 或 窗口尺寸为图像尺寸,不可变
- WINDOW_KEEPRATIO或WINDOW_FREERATIO:保持图像宽高比 或 图像宽高比可变
- WINDOW_GUI_EXPANDED或WINDOW_GUI_NORMAL:窗口带有工具栏和状态栏 或 窗口不带工具栏和状态来
- 默认的flags为:WINDOW_AUTOSIZE | WINDOW_KEEPRATIO | WINDOW_GUI_EXPANDED
- flags可以为多个标志的组合用“|”符号连接
4、img.shape函数
img_shape=img.shape
读取图片的尺寸信息
- img.shape[:2]取彩色图片的长、宽
- img.shape[:3]取彩色图片的长、宽、通道
- img.shape[0]图像的垂直尺寸(高度)
- img.shape[1]图像的水平尺寸(宽度)
- img.shape[2]图像的通道数
5、cv2.medianBlur()函数,中值滤波
dst=cv2.medianBlur(src, ksize=3)
中值滤波
- src:原图像
- ksize:滤波核大小
6、cv2.bilateralFilter()函数,双边滤波
bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=None, borderType=None)
- src:原图像
- d:过滤期间使用的每个像素邻域的直径。如果为非正,则从sigmaSpace计算。
- sigmaColor:颜色空间滤波器的sigma值,该参数的值越大,意味着像素邻域内的更多颜色将混合在一起,从而产生更大的半等色区域。
- sigmaSpace:该值越大,越远的颜色相近的像素将相互影响,使更大的区域中足够相似的颜色获取相同的颜色。当d>0时,d指定了邻域大小,那么不考虑sigmaSpace值,否则d正比于sigmaSpace。
- dst=:输出图像
- borderType=:用于推断图像外部像素的某种边界模式,有默认值BORDER_DEFAULT。
- 一般为了简化,sigmaColor和sigmaSpace可以设置相同的值(下面都用sigma表示两者)如果sigma的值小于10的话,不会产生太大的影响;如果大于150的话,将产生非常强的影响(使图片卡通画)
- 如果选择的d大于5的话,那么执行将会非常慢,所以建议对于实时应用使用d=5;如果对于强噪声的,可以将d=9。
参考链接:
中值滤波器和双边滤波器(python实现)_python 双边滤波-优快云博客
图像滤波——双边滤波(bilateral filtering)-优快云博客
二、Matplotlib
1、plt.imshow()