opencv3 - python 常用函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dugudaibo/article/details/84442227

1. 读入图像

  读入一般都是作为程序的开始,在opencv中,有以下几种的读入方式

img = cv2.imread(img_path, flag)

其中是一个标记位,取值从-1到3,也有对应的宏定义。

CV_LOAD_IMAGE_UNCHANGED – 在每个通道中,每个像素的位深为8 bit,通道数(颜色)保持不变。
CV_LOAD_IMAGE_GRAYSCALE – 位深=8 bit 通道数=1(颜色变灰)
CV_LOAD_IMAGE_COLOR -位深=?, 通道数=3
CV_LOAD_IMAGE_ANYDEPTH – 位深不变 ,通道数=?
CV_LOAD_IMAGE_ANYCOLOR – 位深=?, 通道数不变

由于默认情况下是以8通道BGR彩色图像的模式读入,即使是灰度图像,使用该方法得到的也是彩色图像。

  由于这种方法即使没有读入到图像也不会报错,而是返回一个空矩阵,所以可以通过在每次读入图像后,判断矩阵是否为空来防止bug的产生。

2. 灰度化

gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)  

但是实际上这个函数不仅仅能实现彩色图像灰度化,还可以进行颜色空间转换,只需要修改函数中的第二个参数即可。

3. 高斯滤波

output_image = cv2.GaussianBlur(input_image, (3, 3), 0)

4. 图像差分

  将两幅图像作差,一般用在比较与背景图的差异。两个图片相减,这里用的是灰度图,类型是uint8。两个uint8的数相减得不到负数,会得到差的补码[1]。

diff = cv2.absdiff(background, gray_lwpCV)

5. 阈值化

  将大于阈值的值设为255,将小于阈值的值设为0.

ret, d_frame = cv2.threshold(d_frame, sThre, 255, cv2.THRESH_BINARY)

猜你喜欢

转载自blog.csdn.net/dugudaibo/article/details/84442227