本文共 1643 字,大约阅读时间需要 5 分钟。
1,源代码:
import cv2 as cvimport numpy as npdef access_pixels(image): #定义访问图像像素值的函数 print(image.shape); height = image.shape[0] width = image.shape[1] channels = image.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 = image[row, col, c] #访问图像像素点的数值 image[row, col, c] = 255 - pv #修改图像像素点的数值 cv.imshow("pixels_demo", image)def inverse(image): dst = cv.bitwise_not(image) #对图像(灰度图像或彩色图像均可)每个像素值进行二进制“非”操作 cv.imshow("inverse demo", dst)def create_image(): #创建新的图像 img1 = np.zeros([400, 400, 3], np.uint8) #定义多通道图像大小并初始化为0 #img[: , : , 0] = np.ones([400, 400])*255 #给单通道赋值 img1[:, :, 2] = np.ones([400, 400]) * 255 cv.imshow("new image1", img1) img2 = np.ones([400, 400, 1], np.uint8) #定义单通道图像大小并初始化为1 img 2= img2 * 255 cv.imshow("new image", img) cv.imwrite("F:/images/myImage.png", img2) m1 = np.ones([3, 3], np.int32) #选择合适的类型,避免截断 m1.fill(12222.388) print(m1) m2 = m1.reshape([1, 9]) #维度转换 print(m2) m3 = np.array([[2,3,4], [4,5,6],[7,8,9]], np.int32) #m3.fill(9) print(m3)print("--------- Hello Python ---------")src = cv.imread("F:/images/lena.png") # blue, green redcv.namedWindow("input image", cv.WINDOW_AUTOSIZE)cv.imshow("input image", src)t1 = cv.getTickCount() #获取CPU时钟周期个数#access_pixels(src)create_image()inverse(src)t2 = cv.getTickCount() time = (t2-t1)/cv.getTickFrequency(); #获取时间段print("time : %s ms"%(time*1000))cv.waitKey(0)cv.destroyAllWindows()
2,运行结果:
转载地址:http://vxhwi.baihongyu.com/