Python OpenCV 图像的基础操作

获取像素值并修改

#获取指定坐标的像素值
img[i, j]
#修改指定坐标的像素值
img[i, j] = [r, g, b]

Numpy是经过优化了的进行快速矩阵运算的软件包。

所以不推荐逐个像素值进行修改,会很慢。能用矩阵运算就不要用循环

img.item(10, 10, 2)
img.itemset((10, 10, 2), 100)

获取图像的属性

#获取图像的形状
img.shape

#返回图像的像素数目
img.size

#图像的数据类型
img.dtype

图像ROI

有时候需要对一幅图像的特定区域进行操作。

拆分及合并图像通道

#拆分
b, g, r = cv2.split(img)
#合并
img = cv2.merge(b, g, r)

或者

b = img[:, :, 0]
g = img[:, :, 1]
r = img[:, :, 2]

img[:, :, 2] = 0

为图像扩边(填充)

 cv2.copyMakeBorder()函数

src:输入图像

top,bottom,left,right:对应边界的像素数目

borderType:边界的类型

  cv2.BORDER_CONSTANT:添加有颜色的边界,还需要一个参数

  cv2.BORDER_REFLECT:边界元素的镜像

  cv2.BORDER_REFLECT_101 或者 cv2.BORDER_DEFAULT:

  cv2.BORDER_REPLICATE:重复最后一个元素

  cv2.BORDER_WRAP:

value:边界颜色

猜你喜欢

转载自www.cnblogs.com/wbyixx/p/9393853.html
今日推荐