opencv-学习笔记(1)常用函数和方法。


cv2.imread(filename,falg)

filename是文件名字

flag是读入的方式

cv2.MREAD_UNCHANGED :不进行转化,比如保存为了16位的图片,读取出来仍然为16位。

cv2.IMREAD_GRAYSCALE :进行转化为灰度图,比如保存为了16位的图片,读取出来为8位,类型为CV_8UC1。

cv2.IMREAD_COLOR :进行转化为三通道图像。

cv2.IMREAD_ANYDEPTH :如果图像深度为16位则读出为16位,32位则读出为32位,其余的转化为8位。

实际应用中,falg=0就是灰度图像,falg=1就是三通道图。这种方便

import cv2
import numpy as np
img=cv2.imread('1.jpg',0)//读入灰度图像
cv2.imshow('image',img)
cv2.waitKey(0)

看看输出

flag=0                                flag=1

           


cv2.imshow(‘窗口名字’,图像对象)

但是光光这个不够

还要下面加一句cv2.waitKey(0)

这个函数顾名思义就是等待键盘输入,0就是不停等待,5000就是5s内,函数会返回按下的ascii码


cv2. destroyAllWindows(“窗口名”)

可以关闭任何窗口

不加参数则是关闭所有窗口


 cv2.namedWindow('新建窗口名',flag)

创建一个窗口名叫image

flag=cv2.WINDOW_AUTOSIZE时候就自动适应大小这是默认的

flag=cv2.WINDOW_NORMAL就是图片自适应窗口大小

# -*- coding: utf-8 -*-
"""
Created on Thu May 31 17:32:11 2018 @author: Administrator
""" import cv2
import numpy as np
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
img=cv2.imread('1.jpg',1)
cv2.imshow('image',img)
cv2.waitKey(0)

现在就可以图片自适应窗口了


cv2.imwrite('图像名字',图像对象)

用来保存图片,效果如下


cv.waitKey()

这个函数是有返回值的,我们来看看则么用

import cv2
import numpy as np img=cv2.imread('1.jpg',1)
cv2.imshow('image',img)
k=cv2.waitKey(0)&0xFF#64位系统必须添加
if k==27: #ESC退出不保存
cv2.destroyAllWindows()
elif k==ord('s'): #s键保存
cv2.imwrite('fuck2.jpg',img)
cv2.destroyAllWindows()

matplotlib

这个py库的使用是

from matplotlib import pyplot as plt

import cv2
import numpy as np
from matplotlib import pyplot as plt img=cv2.imread('1.jpg',1)
cv2.imshow('image',img)
cv2.waitKey(0)
plt.imshow(img,cmap='gray',interpolation='bicubic')
plt.xticks([]),plt.yticks([])
plt.show()

这个代码分别用opencv和matplotlib显示了图像可以看出来都相反了?

因为


 opencv用摄像头捕捉视频

# -*- coding: utf-8 -*-
"""
Created on Thu May 31 17:32:11 2018 @author: Administrator
""" import numpy as np
import cv2 #打开摄像头
cap=cv2.VideoCapture(0) while(True):
#一帧一帧捕获视频
ret,frame=cap.read()
cv2.imshow("frame",frame)
#q键退出
if cv2.waitKey(1)&0xFF==ord('q'):
break;
cap.release()
cv2.destroyAllWindows()

效果如下

opencv-学习笔记(1)常用函数和方法。的更多相关文章

  1. OpenCV 学习笔记03 findContours函数

    opencv-python   4.0.1 1 函数释义 词义:发现轮廓! 从二进制图像中查找轮廓(Finds contours in a binary image):轮廓是形状分析和物体检测和识别的 ...

  2. Python学习笔记之常用函数及说明

    Python学习笔记之常用函数及说明 俗话说"好记性不如烂笔头",老祖宗们几千年总结出来的东西还是有些道理的,所以,常用的东西也要记下来,不记不知道,一记吓一跳,乖乖,函数咋这么多 ...

  3. numpy学习笔记 - numpy常用函数、向量化操作及基本数学统计方法

    # -*- coding: utf-8 -*-"""主要记录代码,相关说明采用注释形势,供日常总结.查阅使用,不定时更新.Created on Fri Aug 24 19 ...

  4. opencv学习笔记——cv::CommandLineParser函数详解

    命令行解析类CommandLineParser 该类的作用主要用于命令行的解析,也就是分解命令行的作用.以前版本没这个类时,如果要运行带参数的.exe,必须在命令行中输入文件路径以及各种参数,并且输入 ...

  5. opencv学习笔记之cvSobel 函数解析

    首先,我们来开一下计算机是如何检测边缘的.以灰度图像为例,它的理论基础是这样的,如果出现一个边缘,那么图像的灰度就会有一定的变化,为了方便假设由黑渐变为白代表一个边界,那么对其灰度分析,在边缘的灰度函 ...

  6. OpenCV学习笔记:resize函数改变图像的大小

    OpenCV提供了resize函数来改变图像的大小,函数原型如下: , , int interpolation=INTER_LINEAR ); 参数解释: src:输入,原图像,即待改变大小的图像: ...

  7. OpenCV 学习笔记03 threshold函数

    opencv-python   4.0.1 简介:该函数是对数组中的每一个元素(each array element)应用固定级别阈值(Applies a fixed-level threshold) ...

  8. opencv学习笔记——cv::mean()函数详解

    opencv中封装了一个专门用于求解cv::Mat均值的函数,即cv::mean(&cv::Mat),该函数会得到Mat中各个通道的均值,若要获取指定通道的均值,做进一步解析即可. 具体使用方 ...

  9. 【opencv学习笔记】SetImageROI函数设置ROI区域的作用及用法

    虽然先前知道ROI区域是感兴趣区域,但是真正看到调用了OpenCV的cvSetImageROI函数时,并不知道它的作用,所以还是单独写了一段代码对这个函数进行探究.   OpenCVchm文档中对cv ...

随机推荐

  1. Linux - CentOS 7 yum方式快速安装MongoDB

    一.安装环境及配置yum # more /etc/redhat-release CentOS Linux release 7.2.1511 (Core) # vi /etc/yum.repos.d/m ...

  2. MySql服务未知原因消失了的解决办法

    一: 5.1及后续版本: 打开计算机命令窗口,切换至mysql安装目录,然后运行bin目录下的mysqld.exe,命令如下: D:\MySQL\bin>mysqld.exe -installS ...

  3. iPhone 横竖屏切换,全屏播放的三种方式

    1. 调用系统自带的强制屏幕旋转不过还得在AppDelegate中重写下面方法 - (UIInterfaceOrientationMask)application:(UIApplication *)a ...

  4. nopCommerce电子商务平台 安装教程(图文)

    nopCommerce是一个通用的电子商务平台,适合每个商家的需要:它强大的企业和小型企业网站遍布世界各地的公司销售实体和数字商品.nopCommerce是一个透明且结构良好的解决方案,它结合了开源和 ...

  5. linux配置mysq与navicat关联

    第一步:在linux中安装mysql(执行如下语句) 安装 mysql: yum install mysql yum install mysql-server yum install mysql-de ...

  6. openresty 配置 mongodb 可操作插件

    1.下载lua-resty-mongol https://github.com/bigplum/lua-resty-mongol 2.配置_mongo.conf文件,在conf创建_mongo.con ...

  7. SpringBoot整合Eureka搭建微服务

    1.创建一个services项目,添加三个子模块client(客户端).service(服务端).registry(注册中心) 1.1 创建一个services项目 1.2 添加pom.xml依赖 & ...

  8. mint-ui message box 问题;

    当引用 mint-ui message box 的 出现的问题,我暂时是不知道为什么: 官网是这样写的: 于是 我也这么做的:(这里用小写,具体我也不清楚,毕竟文档上写的也不是很清楚,但是只有这样写, ...

  9. node 版本升级,版本管理,版本切换

    查看node版本 node -v 升级步骤 1,清除node缓存 sudo npm cache clean -f 2,安装n模块 sudo npm install -g n 3,升级到稳定版本 sud ...

  10. 公司内部搭建git服务器

    前言 因为gitHub上的项目是公开的,不适合公司内部项目放在上面,而私人的需要收费,这绝非是我们愿意的.所以找了个跟gitHub很相似,但是又免费的gitLab.现在将搭建gitLab过程记录一下留 ...