获取并修改图像中的像素点

实现原理

我们可以通过行和列的坐标值获取该像素点的像素值。对于BGR图像,它返回一个蓝,绿,红值的数组。对于灰度图像,仅返回相应的强度值。使用相同的方法对像素值进行修改。

import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt

#绘制一个全黑的图像
img = np.zeros((256,256,3),np.uint8)   #创建图像时要指定类型为uint8

'''
创建一个名为img的NumPy数组,该数组是一个形状为(256, 256, 3)的多维数组,数据类型为np.uint8,表示8位无符号整数。这个数组被初始化为全零,因此它是一个全黑的图像。
它的形状是高度256像素,宽度256像素,通道数3(对应于RGB颜色通道)。

'''

plt.imshow(img[:,:,::-1])
'''
plt.imshow(img[:,:,::-1]): 使用Matplotlib的imshow函数来显示图像。
img[:,:,::-1]是一个NumPy切片,用于反转RGB颜色通道的顺序,因为Matplotlib默认使用RGB顺序,而OpenCV使用BGR顺序。
'''
plt.show()

#获取某个像素点的值
px = img[100,100]
#这一行代码用于获取图像 img 中坐标为 (100, 100) 的像素值。
# px 将是一个包含该像素点 RGB 颜色通道值的 NumPy 数组。
print(px)

#仅获取蓝色通道的强度值
blue = img[100,100,0]
#这一行代码从坐标 (100, 100) 的像素中获取蓝色通道 (通道索引 0) 的强度值。
# 这将是一个介于 0 到 255 之间的整数,表示蓝色通道的强度。

#修改某个位置的像素值
img[100,100] = [255,255,255]
#这一行代码将图像中坐标为 (100, 100) 的像素的颜色值修改为白色。
# [255, 255, 255] 表示白色,其中每个通道的强度值都为 255(红、绿、蓝通道都设置为最大值),因此这个像素将变为白色。

plt.imshow(img[:,:,::-1])
plt.show()

运行结果:

相当于把坐标【100,100】位置的点由[0,0,0]黑色 改成 [255,255,255] 白色
在这里插入图片描述
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值