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. c#聊聊文件数据库kv

    现在有很多KV嵌入式存储,或者已经增加的.leveldb,RaptorDB等,都是相对比较好的存储.基本存储,一般配置.大概在6w/s左右.当然还有缓存等设置问题.这些基本是字符串和int的存储,对于 ...

  2. Hibernate一级缓存和三种状态

    Hibernate一级缓存又称session缓存,生命周期很短,跟session生命周期相同. 三种状态:1.transient(瞬时态):刚new出来的对象,既不在数据库中,也不在session管理 ...

  3. ubuntu—终端安装mysql

    ---恢复内容开始--- Step 1 : 安装指令 ~$ sudo apt-get install mysql-server Step 2: 查看是否正常安装 ~$ ps aux | grep my ...

  4. STM32(11)——DMA

    简介: DMA:Direct Memory Access,直接存储器访问.DMA传输数据从一个地址空间复制到另外一个地址空间.当CPU初始化这个传输动作,传输动作本身就是DMA控制器来实现和完成.典型 ...

  5. JS中数组方法的封装之slice

    slice方法的功能 // 1) : 数组的截取 // 2) :slice(m,n): 从数组索引m开始,截取到索引n,但是不包含n;[前包后不包] // slice(m) : 从索引m开始,截取到末 ...

  6. DNS服务器的简介——2

    生成HTTP报文后,因为我们输入的是服务器的域名,但在包体的发送中需要的是服务器的IP地址,所以接下来的工作就是查找服务器的IP地址,而查询IP地址,就需要DNS服务器来帮忙了. IP地址简介: IP ...

  7. Celery的基本使用

    Celery 1.什么是Celery Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度. 用Python写的执行 定时任务和异步任务的框 ...

  8. ruby 爬虫爬取拉钩网职位信息,产生词云报告

    思路:1.获取拉勾网搜索到职位的页数 2.调用接口获取职位id 3.根据职位id访问页面,匹配出关键字 url访问采用unirest,由于拉钩反爬虫,短时间内频繁访问会被限制访问,所以没有采用多线程, ...

  9. 解决sublime 的 package control 问题here are no packages available for installation

    参考https://blog.csdn.net/zknxx/article/details/52685094 关于 channel_v3.json 文件 ,下载的压缩包里没有, 需要下载https:/ ...

  10. C# set 跟 get

    可以在类里面 private string name; public string Name { get { return name; } set { name = value; } }