zoukankan      html  css  js  c++  java
  • 计算机视觉入门

    测试案例:测试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)的蓝色通道的数值,绿色通道的数值,红色通道的数值,第二个图可以很明显看到圈中新写入一条蓝色的线)

  • 相关阅读:
    Java——多线程之方法详解
    Java——深入理解Java异常体系
    Java——Java代码的执行顺序
    Java——抽象类与接口的前世今生
    存储系列之 LUN 和 LVM
    存储系列之 RAID技术原理简介
    存储系列之 硬盘接口与SCSI总线协议
    存储系列之 介质(软盘、硬盘、固态)和磁盘寻址
    Redis设计原理简介
    MySQL InnoDB索引介绍以及在线添加索引实例分析
  • 原文地址:https://www.cnblogs.com/shixinzei/p/10889731.html
Copyright © 2011-2022 走看看