2.图像方面Numpy数组相关操作
2.图像方面Numpy数组相关操作
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。 In [1]:import 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
原图:
灰色图片:
pixel_demo输出的图片:
inverse输出图片:

更多精彩