OpenCV3计算机视觉Python语言实现笔记(一)

ython3下OpenCV的安装 :http://blog.csdn.net/lwplwf/article/details/61616493

1. 读/写图像文件

  OpenCV的imread()函数imwrite()函数能支持各种静态图像文件格式。不同系统支持的文件格式不一样,但都支持BMP格式,通常还应该支持PNG、JPEG和TIFF格式。

  无论哪种格式,每个像素都会有一个值,但不同格式表示像素的方式有所不同。如:

复制代码

import cv2
import numpy as np

img = np.zeros((3, 3), dtype = np.uint8)    # 通过二维NumPy数组来简单创建一个黑色的正方形图像
print(img)                                  # 在控制台打印该图像
print(img.shape)                            # 通过shape属性来查看图像的结构,返回行和列,如果有一个以上的通道,还会返回通道数
img = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)  # 利用cv2.cvtColor函数将该图像转换成BGR格式
print(img)
print(img.shape)
cv2.namedWindow("Image")                    # 显示该图像
cv2.imshow("Image", img)
cv2.waitKey (0)

复制代码

 

结果为:

  [[0 0 0]       
   [0 0 0]
   [0 0 0]]    

# 每个像素都由一个8位整数来表示,即每个像素值的范围是0~255

  (3, 3)

  [[[0 0 0]
    [0 0 0]
    [0 0 0]]

   [[0 0 0]
    [0 0 0]
    [0 0 0]]

   [[0 0 0]
    [0 0 0]
    [0 0 0]]]  

# 现在每个像素都由一个三元数组表示,并且每个整型向量分别表示一个B,G和R通道。其他色彩空间(如HSV)也以同样的方式来表示像素,只是取值范围和通道数目不同(例如,HSV色彩空间的色度值范围为0~180)

  (3, 3, 3)  

# 此时每个像素有3通道

 

  可读取一种格式的图像文件,然后将其保存为另一种格式。如:

import cv2
image = cv2.imread('flower.jpg')  # 将‘flower.jpg’的图片与.py文件放在同一目录下,或者使用绝对路径
cv2.imwrite('flower.png',image)

  程序运行后,可看到文件夹中多了'flower.png'的图片

           

  在默认情况下,即使图像文件为灰度格式,imread()函数也会返回BGR格式的图像,BGR与RGB表示的色彩空间相同,但字节顺序相反。

  下面列出的选项可作为imread()函数的参数:

    IMREAD_ANYCOLOR = 4

    IMREAD_ANYDEPTH = 2

    IMREAD_COLOR = 1

    IMREAD_GARYSCALE = 0

    IMREAD_LOAD_GDAL = 8

    IMREAD_UNCHANGED = -1

    cv2.imread(‘图像名称’,’可选参数’) 
      可选参数决定读入图像的模式: 
      0:读入的为灰度图像(即使图像为彩色的) 
      1:读入的图像为彩色的(默认); 

  如下面的例子将加载的PNG文件作为灰度图像(在这个过程中会丢失所有的颜色信息),然后又将其保存为灰度的PNG图像。

import cv2
import numpy as np

garyImage = cv2.imread('flower.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imwrite('flower.png',garyImage)

  程序运行后,文件夹中出现了灰度图像

              

  无论采用哪种模式,imread()函数会删除所有alpha通道的信息(透明度)。imwrite()函数要求图像为BGR或灰度格式,并且每个通道要有一定的位(bit),输出格式要支持这些通道。例如,bmp格式要求每个通道有8位,而PNG允许每个通道有8位或16位

  储存图像函数:cv2.imwrite(‘保存的图像名’,图像,‘参数’) 
  正常的图像储存使用就是cv2.imwrite(‘保存的图像名’,图像),后面一个参数默认,保存的图像名还得带类型,比如jpg,bmp等等,OpenCV目前支持读取bmp、jpg、png、tiff等常用格式,第三个参数较复杂,还得分是jpg、bmp等等图像的类型不同而不同,其实就是决定了图像储存大小,清晰度的,默认的就很好

   此外,还有一种显示图像的方式。

import cv2
from matplotlib import pyplot as plt
img = cv2.imread('flower.jpg',0);#打开为灰度图像
plt.imshow(img, 'gray') #必须规定为显示的为什么图像
# plt.xticks([]),plt.yticks([]) #隐藏坐标线
plt.show() #显示出来,不要也可以,但是一般都要了

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Anaconda是一个用于科学计算的Python发行版,它包含了许多常用的科学计算库和工具。Anaconda的目标是简化Python环境的安装和管理,使科学家和数据分析师能够更轻松地使用Python进行科学计算和数据分析。 Jupyter是一个交互式的计算环境,它可以让开发者以笔记本形式进行编程和数据探索。通过Jupyter,我们可以编写和运行Python代码、展示数据可视化、撰写文档等。Jupyter的灵活性和可视化功能使其成为数据科学和机器学习领域非常受欢迎的工具。 OpenCV是一个用于计算机视觉和图像处理的开源库。它提供了大量的图像处理和计算机视觉算法,可以用于图像分析、特征提取、图像识别等领域。OpenCV支持多种编程语言,包括Python,通过使用OpenCV可以方便地进行图像处理和计算机视觉任务。 综合起来,Anaconda提供了Python的科学计算环境,而Jupyter则为我们提供了一个交互式的计算环境,而OpenCV为我们提供了图像处理和计算机视觉的算法库。通过使用Anaconda可以方便地管理和安装相关库和工具,而使用Jupyter可以方便地进行代码编写和数据可视化,而使用OpenCV可以方便地进行图像处理和计算机视觉任务。这三者的结合,为我们提供了强大的科学计算和图像处理的工具链。 ### 回答2: Anaconda是一个开源的Python发行版本,它包含了许多用于科学计算和数据分析的库和工具。Anaconda提供了一个可视化的环境管理器,可以用来安装和管理Python包和依赖。 Jupyter是一个基于Web的交互式计算环境,它支持多种编程语言,其中包括Python。Jupyter提供了一个Notebook界面,可以将代码、文档和可视化内容结合在一起,并且可以通过浏览器进行访问和共享。 OpenCV是一个开源的计算机视觉库,它提供了许多用于图像处理和计算机视觉任务的函数和工具。OpenCV可以用于图像获取、处理、分析、以及对象识别和跟踪等任务。它支持多种编程语言,包括Python。 Anaconda、Jupyter和OpenCV在科学计算和数据分析领域都有广泛的应用。通过使用Anaconda,可以方便地安装和管理OpenCV等库。而借助Jupyter的交互式计算环境,可以更加高效地进行图像处理和计算机视觉任务的开发和调试。同时,可以通过Jupyter的Notebook界面,将代码和结果以及注释和说明结合在一起,便于代码的分享和复用。 综上所述,Anaconda、Jupyter和OpenCV是三个在科学计算和数据分析领域非常有用的工具和库,它们可以一起使用,相互补充,提高开发效率和代码可读性。 ### 回答3: Anaconda是一个流行的Python数据科学平台,它集成了许多常用的数据科学库和工具。Anaconda包括一个包管理系统,使得安装和管理各种包变得更加简便。通过Anaconda,用户可以轻松地搭建自己的Python环境,并方便地管理所需的包。 Jupyter是一个开源的Web应用程序,它提供了一个交互式的计算环境,支持多种编程语言。Jupyter的主要特点是它以“笔记本”的形式组织代码、文本和图形输出。用户可以在笔记本中编写代码,并实时查看代码运行的结果。Jupyter非常适用于展示和分享数据分析、机器学习和数据可视化的工作。 OpenCV是一个开源的计算机视觉库,它提供了很多用于处理图像和视频的函数和算法。OpenCV广泛应用于计算机视觉、图像处理、视频分析等领域。通过OpenCV可以进行图像的读取、处理、计算机视觉任务的实现等。它支持多种编程语言,包括Python。 Anaconda, Jupyter和OpenCV之间的关系是,Anaconda提供了一个方便的平台搭建环境,允许用户安装和管理OpenCV等数据科学包。用户可以使用Jupyter作为Anaconda提供的一种交互式环境来编写代码、展示和分享数据处理、机器学习和计算机视觉的工作。通过Anaconda的包管理系统,用户可以轻松地安装和配置OpenCV,并且可以轻松地分享和共享使用Jupyter编写的数据处理和计算机视觉代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值