Python-OpenCV 笔记2 -- 图像的基本属性和操作
生活随笔
收集整理的这篇文章主要介绍了
Python-OpenCV 笔记2 -- 图像的基本属性和操作
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
Python-OpenCV 笔记2 – 图像的基本属性和操作
1、图片基本属性
# 图像的类型 type(image)# 图像的大小,元组(行,列,通道) image.shape# 图像的大小,值为shape三个元素的乘积 image.size # 图像像素的数据类型 image.dtype2、图片基本操作
图像缩放:
# 缩放为指定尺寸 img1 = cv2.resize(img1, (1000, 750))图像颜色转换:
# 彩色图转灰度图 img = cv2.cvtColor(img1, cv2.COLOR_RGB2GRAY)图像通道分离和合并:
# 注意通道的顺序是b, g, r # 图像通道分离 b,g,r = cv2.split(img) b = cv2.split(img)[0] g = cv2.split(img)[1] r = cv2.split(img)[2]# 图像通道合并 img = cv2.merge([b,g,r])3、图像滤波
均值滤波(Averaging):
# 函数原型 blur(src, ksize[, dst[, anchor[, borderType]]] )# 实例 blur = cv2.blur(img, (3,3))- src:输入图片
- ksize:滑动窗口的大小,(x, x),x通常为奇数3,5,7,9
- dst:输出图片
- anchor:锚点,即滑动窗口的计算点,(-1, -1)表示中心点
- borderType:超出图像的像素点插值方式
高斯滤波(Gaussian Blurring):
# 函数原型 GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType]]])# 实例 blur = cv2.GaussianBlur(img,(5,5),0)- sigmaX:高斯核X方向的标准差,XY都等于0时按照ksize的宽和高来定
- sigmaY:高斯核Y方向的标准差,等于0或默认时=sigmaX
- 标准差越大中间元素的占比越大
中值滤波(Median Blurring):
# 函数原型 medianBlur(src, ksize[, dst])# 实例 median = cv2.medianBlur(img,5)- ksize:核大小,一个正整数,通常3,5,9
- 对椒盐噪声效果好
双边滤波(Bilateral Filtering):
# 函数原型 bilateralFilter(src, d, sigmaColor, sigmaSpace[, dst[, borderType]])# 实例 blur = cv2.bilateralFilter(img,9,75,75)- 边缘较其它滤波清晰,比较耗时
- d:核的直径,推荐<=5
- sigmaColor:颜色空间参数,越大表示较远的相同颜色像素值影响越大
- sigmaSpace:坐标空间参数,越大时离得较远的像素影响越大
4、图像二值化
函数原型:
# 普通阈值 threshold(src, thresh, maxval, type, dst=None)# 自适应阈值,图片分成小块计算阈值 adaptiveThreshold(src,maxValue,adaptiveMethod,thresholdType,blockSize,C,dst=None)- src:输入图片
- thresh:灰度值阈值
- maxval:最大的灰度值
- type:二值化方法。THRESH_BINARY,THRESH_BINARY_INV,THRESH_TRUNC,THRESH_TOZERO , THRESH_TOZERO_INV ,THRESH_OTSU(最佳阈值)
- dst:输出图片
- maxValue:与 maxval 相同
- adaptiveMethod:ADAPTIVE_THRESH_MEAN_C(通过平均的方法取得平均值)、ADAPTIVE_THRESH_GAUSSIAN_C(通过高斯取得高斯值) ,这两种方法最后得到的结果要减掉参数里面的C值
- thresholdType:与 type 相同
- blockSize:计算阈值的邻域块大小,正方形,必须为奇数
- C:偏移值,计算出的自适应阈值要加上该偏移值
5、图像梯度图
Sobel 算子:
函数原型:
Sobel(src, ddepth, dx, dy, dst=None, ksize=None, scale=None, delta=None, borderType=None)- src:待计算的输入图
- ddepth:图片的深度
- dx:x轴的微分阶数
- dy:y轴的微分阶数
- dst:输出图片
- ksize:算子的核大小,必须为1、3、5、7
- scale:微分值的缩放系数
- delta:微分值的偏差值
- borderType:数值的插值类型
6、Canny边缘检测
Canny边缘检测原理
# 函数原型 Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient]]]) Canny(dx, dy, threshold1, threshold2[, edges[, L2gradient]])# 实例 edges = cv2.Canny(img,100,200)- image:输入图片,必须为单通道灰度图
- dx:输入图片的x方向梯度图
- dy:输入图片的y方向梯度图
- threshold1:选择是否保留某点梯度的阈值低值
- threshold2:选择是否保留某点梯度的阈值高值
- apertureSize:Sobel算子的核大小
总结
以上是生活随笔为你收集整理的Python-OpenCV 笔记2 -- 图像的基本属性和操作的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: spring.mvc.static-pa
- 下一篇: Python-OpenCV 笔记3 --