OpenCV-Python官方教程-03-图像基础操作(获取修改像数值、图像属性、图像通道拆分合并,扩边)

  • 获取修改像素值
import cv2 
import numpy as np
img = cv2.imread('x.png')
px = img[100,100]
print (px)
blue = img[100,100,0]
print (blue)
px = [255,255,255]
print (px)
#修改一块区域
roi = img[250:300,250:300]
img[50:100,50:100] = roi
cv2.imshow('11',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

[ 82 153 210]
82
[255, 255, 255]
在这里插入图片描述

还有一种办法,速度更优,利用numpy中的array.item()获取像素点,array.itemset()修改像素值

print (img.item(10,10,2))
img.itemset((10,10,2),90)
print (img.item(10,10,2))

100
90

  • 获取图像属性(行,列,通道,图像数据类型,像素数目)
print (img.shape)
print (img.size)
print (img.dtype)

(319, 319, 3)
305283
uint8

  • 图像通道拆分与合并
#方式一:代码简单但是速度慢,复杂度高
b,g,r = cv2.split(img)
img2 = cv2.merge((r,g,b))
#方式二:
b = img[:,:,0]
g = img[:,:,1]
r = img[:,:,2]
  • 图像扩边(填充)
    利用函数cv2.copyMakeBorder(param1,param2,param3,param4,param5,param6),param1是输入的图像,2,3,4,5是top,bottom,left,right需要填充多少像素值,param6是填充方式。
blue = [255,0,0]
replicate = cv2.copyMakeBorder(img,20,20,20,20,cv2.BORDER_CONSTANT,value = blue)
cv2.imshow('11',replicate)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值