首页 > 编程语言 >opencv-python系列一

opencv-python系列一

时间:2022-11-09 17:12:58浏览次数:67  
标签:系列 name img python cv2 opencv 灰度 imread 图片

简介

OpenCV

OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效,由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

OpenCV Python

OpenCV的Python API。它结合了OpenCV C++ API和Python语言的最佳特性。
而且Numpy的支持使任务变得更加容易。 Numpy 是一个高度优化的数值运算库。它给出了一个MATLAB风格的语法。所有OpenCV数组结构都转换为Numpy数组,除此之外,还可以使用其他几个支持Numpy的库,如SciPy、Matplotlib。
因此OpenCV Python是一个适合于计算机视觉问题快速成型的工具。

安装

pip install opencv-python

官方文档:https://docs.opencv.org/4.x/d6/d00/tutorial_py_root.html

opencv简单图像处理

灰度值

把白色与黑色之间按对数关系分成若干级,称为“灰度等级”。范围一般从0到255,白色为255,黑色为0

读取图像

cv2.imread()

读取图片,返回图片对象

imread(img_path,flag) 
    img_path: 图片的路径,即使路径错误也不会报错,但返回的图片对象为None
    flag:cv2.IMREAD_COLOR,读取彩色图片,图片透明性会被忽略,为默认参数,也可以传入1
          cv2.IMREAD_GRAYSCALE,按灰度模式读取图像,也可以传入0
          cv2.IMREAD_UNCHANGED,保留读取图片原有的颜色通道,也可以传入-1

代码如下:

import cv2
gray_img = cv2.imread('test.jpeg', 0)  # 加载灰度图像
rgb_img = cv2.imread('test.jpeg')  # 加载RGB彩色图像

一张图片的颜色是由BGR三个通道构成, 可以把一张图片上的每一个像素点看成一个对象, 这个对象又由RGB三种颜色叠加, 即用一个一维数组表示,如[111,222,111]。
假如我们有一张 5 * 6 个像素点的图片, 那么每一行有 6 个像素, 即每一行有 6 个一维数组, 即这一行是一个二维数组。
那一张图片又有 5 行, 那么我们就得到了 5 个二维数组, 这 5 个二维数组构成了一个三维数组。
(即每个最内层的数组有三个元素,代表着BGR三个通道的灰度值。第二层和第三层则负责遍历整个列和行)

显示图像

cv2.imshow()

显示图片,窗口自适应图片大小

imshow(window_name,img):
    window_name: 指定窗口的名字
    img:显示的图片对象
    可以指定多个窗口名称,显示多个图片

cv2.waitKey()

键盘绑定事件,阻塞监听键盘按键,返回一个数字(不同按键对应的数字不同)

waitKey(millseconds)  
    millseconds: 传入时间毫秒数,在该时间内等待键盘事件;传入0时,会一直等待键盘事件

cv2.destroyAllWindows()

删除任何我们建立的窗口

destroyAllWindows(window_name) 
    window_name: 需要关闭的窗口名字,不传入时关闭所有窗口

cv2.namedWindow()

先手动创建一个窗口,再加载图像。因为有些图片过多会超过屏幕显示区域

namedWindow(window_name,flag)
    window_name:窗口名称自定义
    flag: cv2.WINDOW_AUTOSIZE,窗口大小随图片大小,自动变化
          cv2.WINDOW_NORMAL,窗口大小可以手动调节,非常实用

代码如下:

import cv2

gray_img = cv2.imread('test.jpeg', 0)  # 加载灰度图像
rgb_img = cv2.imread('test.jpeg')  # 加载RGB彩色图像

cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image',gray_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

保存图像

cv2.imwrite()

imwrite(img_path_name,img)
    img_path_name:保存的文件名
    img:文件对象

代码如下:

import cv2

gray_img = cv2.imread('test.jpeg', 0)  # 加载灰度图像
rgb_img = cv2.imread('test.jpeg')  # 加载RGB彩色图像
cv2.imwrite(r'E:/rgb_img.jpg', gray_img)  # 将图像保存为jpg文件

标签:系列,name,img,python,cv2,opencv,灰度,imread,图片
From: https://www.cnblogs.com/qev211/p/16873523.html

相关文章

  • Python阶段性总结:面向对象之选课系统需求分析及目录搭建
    目录面向对象之选课系统一、选课系统需求分析二、功能提炼三、选课系统架构设计四、选课系统目录搭建五、选课系统功能搭建面向对象之选课系统一、选课系统需求分析1、......
  • 【Python】将方法传递给函数的参数,并在函数中使用该方法
    方法defsum(x,y):returnx+y 函数classdemo:def__init__(self,x,y):self.x=xself.y=ydefrun(self,func)......
  • Pythontext_8
    1实例一:创建并打开记录蚂蚁庄园动态的文件2print("\n","="*10,"蚂蚁庄园动态","="*10)3file=open('message.txt','w')#创建或打开保存蚂蚁庄园动态信息......
  • 1.python基础使用
    1.git简介git是一个免费的开源的分布式版本控制系统,可以快速高效的处理从小型到大型项目的所有事务在实际工作中可以保留项目的所有版本,可以快速的实现版本的回滚和修......
  • python实验报告(第十章)
    一、实验目的1.掌握基本的文件操作2.掌握目录操作3.掌握高级文件操作二、实验环境python版本:3.10(64-bit)三、实验内容1.实例一:  实验结果:  2.实例二:  ......
  • Python简单函数--获取当前时间
    importtimedefgetTime():'''%y两位数的年份表示(00-99)%Y四位数的年份表示(000-9999)%m月份(01-12)%d月内中的一天(0-31)%H24小时制小时数(0-23)......
  • 微服务系列之配置中心 Apollo
    1.背景与介绍  随着微服务架构的发展,企业级项目由无数的服务组成,这时候急需用到集中管理、治理的配置的组件,来统一管理各个服务的开关、配置参数、数据库地址、服务器等......
  • Python遇到编码问题到底怎么解决?
    Python遇到编码问题到底怎么解决?UnicodeEncodeError:'utf-8'codeccan'tencodecharacter'\xbb'inposition8530:illegalmultibyte遇到这个问题的时候,我百度查看了......
  • Python实现视频转 gif 动图
    Python实现视频转gif动图1.准备工作需要准备用于生成​​gif​​的视频文件,另外,就是需要用到​​moviepy​​库,关于这个库更详细的介绍可以查看它的官方文档。​​ht......
  • python一个好玩的库,可以直接调接口数据,进行数据分析,不用去爬取数据集再进行分析了
    python一个好玩的库,可以直接调接口数据,进行数据分析,不用去爬取数据集再进行分析了简介这个库的名字叫GoPUP,GitHub主页是:https://github.com/justinzm/gopup这其实是一个基......