OpenCV(基于python)学习笔记之图片I/O

本文介绍如何使用OpenCV和Numpy进行图像处理,包括读取和显示图像、访问和修改像素值、获取图像属性等操作。通过实例演示了批量修改像素值的方法,以及如何利用这些技巧进行图像区域提取和叠加。

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

使用numpy访问图像数据

修改图像中某一点的像素值

import cv2
import numpy as np
img = cv2.imread('image/logo.png')
print(img.item(150,120,0))
#显示蓝色通道150,120处像素的值
img.itemset((150,120,0),255)
print(img.item(150,120,0))
#显示蓝色通道150,120处修改后像素的值

批量修改图片中的像素值

我们可以使用索引批量修改图片中的像素值,以下代码为为将G通道中所有的像素值变为0(在此之前需要import cv2和numpy)

img[:,:,1] = 0

我们可以使用这个功能做出一些很有意思的事情,比如找出我们感兴趣的区域:

my_roi = img[0:100,0:100]

也可以将一个图片覆盖到另一个图片之上

img[200:300,200:300] = my_roi

获取图片的属性

我们可以使用以下代码来获取图片的属性,以512*512的彩色图片为例:

print(img.shape)
#显示图片的长宽和通道数,对于本例为(512,512,3),若果是灰度图像,则会返回一个二维数组,即长和宽
print(img.size)
#返回像素数目,即长*宽*通道数,对于本例为786432
print(img.dtype)
#返回图像的数据类型,一般为uint8

在窗口显示图像

"""
在窗口显示图像
"""
import cv2
import numpy as np
img = cv2.imread('image/logo.png')
cv2.imshow('my image',img)
cv2.waitKey()
cv2.destroyAllWindows()
#destroyAllWindows()用于在程序结束后释放所有窗口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值