翼度科技»论坛 编程开发 python 查看内容

【C++】【OpenCV】【NumPy】图像数据的访问

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
接上一随笔,这次学习针对图像数据的访问(Numpy.array)
在OpenCV中,使用 imread() 方法可以访问图像,其返回值是一个数组,而根据传入的不同图像,将会返回不同维度的数组。
针对返回的图像数据,即数组,我们是可以进行操作的:
  1. 1 import cv2
  2. 2
  3. 3 # MyPic.png图像自行随意创建一个原始字符转换成图像即可
  4. 4 img = cv2.imread('MyPic.png')
  5. 5
  6. 6 # 在array类中,可以使用[, , ]这种类型来访问多维数组
  7. 7 img[0, 0] = [255, 255, 255]
复制代码
此时,我们就将MyPic这张图的(0, 0)这一像素点修改成了白色。
而在array类中有提供相应的item方法来便捷我们的上述操作:
  1. 1 # 修改这一点上的三元色中的某一色
  2. 2 img.itemset((0, 0, 0), 255)
  3. 3 # 获取这一点上的像素值
  4. 4 img.item(0, 0, 0)
复制代码
但是上述操作都是针对某一点的修改,只能做到有限的区域,当我们想操作更大的区域时,则可以使用切片(split):
 1 img[0:100, 0:100, :] = 255 
上述代码将获取图像的左上角一个边长为100的正方形区域,将颜色是修改为白色。
(注意:图像处理中,img的索引分表代表 [y(height), x(width), channels],相对于我们数学意义上的XY轴,进行了一个调换, 其中左上角为原点(0,0))

来源:https://www.cnblogs.com/vangoghpeng/p/17844650.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具