计算机视觉入门
测试案例:测试tensorflow和opencv是否在python环境下安装成功。测试代码如下:
1 # encoding:utf-8 2 3 # 测试tensorflow和OpenCV 4 5 import tensorflow as tf 6 hello = tf.constant('hello tf!') 7 sess = tf.Session() 8 print(sess.run(hello)) 9 10 import cv2 11 print('hello opencv')
相关包安装成功,运行效果如下图所示:
案例1:图片的读取和展示,测试代码如下:
1 # encoding:utf-8 2 3 # 引入OpenCV api 4 import cv2 5 # 1.文件的读取 6 # 2.文件封装格式的解析 7 # 3.文件数据的解码 8 # 4.数据的加载 9 img = cv2.imread('image0.JPG') # 读取图片 10 cv2.imshow('image2', img) # 取名字为image2 11 cv2.waitKey(0) # 暂停暂时图片
运行效果截图如下图所示:(图中的圈表示之前所取的图片名)
案例2:图片的写入,测试代码如下:
1 # encoding:utf-8 2 3 # 引入OpenCVapi 4 import cv2 5 6 img = cv2.imread('image0.JPG', 1) # 1表示是彩色图片 7 cv2.imwrite('image1.jpg', img) # 写入的图片 新生成的图片名为image1.jpg 8 print(cv2.imwrite('image1.jpg', img)) # 打印出True表示写入成功
案例3:不同图片质量保存,测试代码如下:
1 # encoding:utf-8 2 3 import cv2 4 img = cv2.imread('image0.jpg', 1) 5 # JPEG 有损压缩 质量范围是0-100 数值越大文件越大 6 cv2.imwrite('imageTest1.jpg', img, [cv2.IMWRITE_JPEG_QUALITY, 0]) 7 cv2.imwrite('imageTest2.jpg', img, [cv2.IMWRITE_JPEG_QUALITY, 10]) 8 cv2.imwrite('imageTest3.jpg', img, [cv2.IMWRITE_JPEG_QUALITY, 100]) 9 10 # jpg 0 压缩比高 范围0-100 11 # PNG 0 压缩比低 范围0-9 12 cv2.imwrite('imageTest4.png', img, [cv2.IMWRITE_PNG_COMPRESSION, 0]) 13 cv2.imwrite('imageTest4.png', img, [cv2.IMWRITE_PNG_COMPRESSION, 5])
案例4:像素读取和写入,测试代码如下:
1 # encoding:utf-8 2 3 # 像素 4 # RGB 三种颜色分量 256的三次方这么多颜色 5 # 颜色深度 8bit 0-255 6 # w h 640*480 7 # 1.14M = 720*547*3*8 bit/8 (B) =1.14M 8 # RGB alpha 透明度 9 # RGB bgr 10 # bgr b g r 11 import cv2 12 img = cv2.imread('image0.jpg', 1) 13 (b, g, r) = img[100, 100] 14 print(b) # 打印蓝色分量数值 15 print(g) # 打印绿色分量数值 16 print(r) # 打印红色分量数值 17 18 # 画一条蓝色的线从点(10,100)到点(110,100) 19 for i in range(1, 100): 20 img[10+i, 100] = (255, 0, 0) # 蓝色 21 cv2.imshow('image', img) 22 cv2.waitKey(0)
运行效果见下图:(三个数值分别表示像素点(100,100)的蓝色通道的数值,绿色通道的数值,红色通道的数值,第二个图可以很明显看到圈中新写入一条蓝色的线)