opencv图像的基础操作

本文详细介绍使用Python的OpenCV库进行图像处理的方法,包括像素值操作、图像信息获取、图像区域兴趣(ROI)处理、通道拆分与合并、图像边界填充等核心操作。通过实例演示如何读取、修改和显示图像,适用于初学者掌握图像处理基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导入

import cv2
import numpy as np
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.resizeWindow('image',640,480)
img=cv2.imread('D:\BaiduNetdiskDownload\practice2.jpg',1)

图像的基础操作

获取、修改像素值;获取图像信息

px=img[100,100]#获取这一个点的三个通道的像素
blue=img[100,100,0]#获取一个像素值
blue=[255,255,255]
c=img.shape#长、宽、维度
b=img.size#图像的像素数目
print(img.dtype)#图像的数据类型

图像ROI

part=img[200:300,400:500]
img[700:800,900:1000]=part
cv2.imshow('image',img)

图像拆分与合并通道

#拆分及合并通道
#用split()分离
b,g,r=cv2.split(img)
img=cv2.merge(b,g,r)
#用矩阵分离,因为split太慢了
b=img[:,:,0]
#红色通道都为0
img[:,:,2]=0

为图像扩边(填充)

#为图像扩边(填充)
#参数:图像;上、下、左、右对应边界的像素数目;想要添加哪种边界
#constant=cv2.copyMakeBorder(img,10,10,10,10,cv2.BORDER_CONSTANT,(255,255,255))#添加有颜色的常数值边界,还需要下一个参数(value)
#constant=cv2.copyMakeBorder(img,300,300,300,300,cv2.BORDER_REFLECT)#边界元素的镜像
#constant=cv2.copyMakeBorder(img,300,300,300,300,cv2.BORDER_REFLECT_101)#忽略最边缘的像素,镜像
#constant=cv2.copyMakeBorder(img,300,300,300,300,cv2.BORDER_REPLICATE)#重复最后一个元素
constant=cv2.copyMakeBorder(img,300,300,300,300,cv2.BORDER_WRAP)#cdefgh|abcdefgh|abcdefg,一样的顺序,上下颠倒
cv2.imshow('image',constant)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值