7 opencv python图像基本操作

图像基本操作

目标

  • 获取图像像素并修改
  • 获取图像基本信息
  • 获取图形ROI
  • 图像通道拆分和合并

获取图像像素并修改制定的颜色

  • 直接制定像素坐标修改
  • 通过itemset方法获取并修改
import cv2
import numpy as np
img=cv2.imread('test.jpg')

px=img[100,100]
print(px)
blue=img[100,100,0]
print(blue)
img[100,100]=[255,255,255]
print(img[100,100])

# itemset 方法
print(img.item(10,10,2))
img.itemset((10,10,2),100)
print(img.item(10,10,2))

运行结果

[33 27 44]
33
[255 255 255]
206
100

获取图像属性

  • img.shape 图像形状
  • img.size 图像像素数目
  • img.dtype 图像数据类型
print('img.shape', img.shape)
print('img.size', img.size)
print('img.dtype', img.dtype)
img.shape (489, 304, 3)
img.size 445968
img.dtype uint8
import matplotlib.pyplot as plt
%matplotlib inline
ball=img[180:300,200:300]
img[170:290,10:110]=ball
plt.imshow(img)
运行结果:

拆分及合并图像通道

  • cv2.split(img) 通道拆分
  • cv2.merge(img) 通道合并
  • cv2.split() 是一个比较耗时的操作。只有真正需要时才用它,能用Numpy 索引就尽量用。
img=cv2.imread('test.jpg')
r,g,b=cv2.split(img)
plt.subplot(231)
plt.imshow(img)
img=cv2.merge([b , g, r])
plt.subplot(232)
plt.imshow(img)
<matplotlib.image.AxesImage at 0x2010e3005f8>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值