2.图像方面Numpy数组相关操作
2021-04-08 16:26
标签:record keyboard ibgp ISE success ams function smis file 2.图像方面Numpy数组相关操作 原图: 灰色图片: pixel_demo输出的图片: inverse输出图片: 2.图像方面Numpy数组相关操作 标签:record keyboard ibgp ISE success ams function smis file 原文地址:https://www.cnblogs.com/AI-robort/p/13377806.htmlimport cv2 as cv
import numpy as np
#图片颜色反转
def access_pixels(img):
print(img.shape)
height=img.shape[0]
width=img.shape[1]
channels=img.shape[2]#通道数量
print("width:%s,height:%s,channels=%s"%(width,height,channels))
for row in range(height):
for col in range(width):
for c in range(channels):
pv=img[row,col,c]
img[row,col,c]=255-pv
cv.imshow("pixels_demo",img)
#前面的access_pixels()方法可以用cv.bitwise_not()代替
def inverse(image):
dst=cv.bitwise_not(image)
cv.imshow("inverse",dst)
#画出蓝色的图
def create_image():
#img=np.zeros([400,400,3],np.uint8)#多通道
img=np.ones([400,400,1],np.uint8)#单通道
#画灰度图
img=img*127
#画蓝色图
#img[:,:,0]=np.ones([400,400])*255
cv.imshow("new image",img)
cv.imwrite("./gray.png",img)
print("---hello-----")
src=cv.imread("aaa.png",cv.WINDOW_AUTOSIZE)
#窗口名字
cv.namedWindow("picture1",0)
cv.imshow("picture1",src)
t1=cv.getTickCount()
create_image()
access_pixels(src)
inverse(src)
t2=cv.getTickCount()
#getTickCount():用于返回从操作系统启动到当前所经的计时周期数,看名字也很好理解,get Tick Count(s)。
#getTickFrequency():用于返回CPU的频率。get Tick Frequency。这里的单位是秒,也就是一秒内重复的次数。
#总次数/一秒内重复的次数 = 时间(s)
print("time:%s ms"%((t2-t1)/cv.getTickFrequency()+1000))
cv.waitKey(0)
cv.destroyAllwindows()
---hello-----
(96, 89, 3)
width:89,height:96,channels=3
time:1000.2815058 ms