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

使用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()用于在程序结束后释放所有窗口
发布了14 篇原创文章 · 获赞 0 · 访问量 243

猜你喜欢

转载自blog.csdn.net/pnd237/article/details/103926678