【opencv】opencv图像识别的一些基础的基础函数的使用方法
import cv2
import numpy as np
from matplotlib import pyplot as plt pic_path = "deal_with.png" def cv_imread():
"""
读取图片
:return:
"""
# imread的第二个参数告诉函数如何读取这幅图片
# 0:以灰度模式读入图像
# 1:读入一副彩色图像,图像的透明度会被忽略,这是默认参数
# -1:读入一幅图像,并且包括图像的alpha通道
img = cv2.imread(pic_path, 0)
# print(img)
return img def cv_imshow():
"""
显示图片
:return:
"""
img = cv_imread()
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows() def cv_imwrite():
"""
保存图片
:return:
"""
img = cv_imread()
cv2.imwrite(pic_path, img) def matplotlib_show_pic():
"""
使用matplotlib
:return:
"""
img = cv_imread()
plt.imshow(img, cmap='gray', interpolation='bicubic')
plt.xticks([]), plt.yticks([])
plt.show() def cv2_video_cap():
"""
摄像头
:return:
"""
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame', gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows() def cv_line():
"""
画线
:return:
"""
img = np.zeros((512, 512, 3), np.uint8) # 读取图像,这里是一个黑色的图片
cv2.line(img, (0, 0), (511, 511), (255, 0, 0), 5) # 参数:图像,起点坐标,终点坐标,颜色,粗细(-1为填充)
cv2.imshow('img', img)
cv2.waitKey(0) def cv_rectangle():
"""
画矩形
:return:
"""
img = np.zeros((512, 512, 3), np.uint8) # 读取图像,这里是一个黑色的图片
cv2.rectangle(img, (384, 0), (510, 128), (0, 255, 0), 3) # 参数:图像,左上角顶点坐标,右下角顶点坐标,颜色,粗细(-1为填充)
cv2.imshow('img', img)
cv2.waitKey(0) def cv_circle():
"""
画圆
:return:
"""
img = np.zeros((512, 512, 3), np.uint8) # 读取图像,这里是一个黑色的图片
cv2.circle(img, (447, 63), 63, (0, 255, 0), 1) # 参数:图像,圆形中心坐标,半径大小,颜色,粗细(-1为填充)
cv2.imshow('img', img)
cv2.waitKey(0) def cv_ellipse():
"""
画椭圆
:return:
"""
img = np.zeros((512, 512, 3), np.uint8) # 读取图像,这里是一个黑色的图片
cv2.ellipse(img, (256, 256), (100, 50), 0, 0, 360, 255,
-1) # 参数:图像,中心点的坐标,长轴、短轴的长度,椭圆沿逆时针方向旋转的角度,椭圆弧演顺时针方向起始的角度和结束角度,如果是 0 跟 360,就是整个椭圆,颜色,粗细
cv2.imshow('img', img)
cv2.waitKey(0) def cv_put_text():
"""
图片上添加文字
:return:
"""
img = np.zeros((512, 512, 3), np.uint8) # 读取图像,这里是一个黑色的图片
font = cv2.FONT_HERSHEY_SIMPLEX # 字体类型
cv2.putText(img, 'OpenCV', (10, 500), font, 4, (255, 255, 255), 2) # 参数:图像,要绘制的文字,要绘制的位置,字体类型,字体大小,颜色,粗细
cv2.imshow('img', img)
cv2.waitKey(0)
【opencv】opencv图像识别的一些基础的基础函数的使用方法的更多相关文章
- java基础(环境设置,基础语法,函数数组)
框架图 环境搭建 课程中常见dos命令: dir : 列出当前目录下的文件以及文件夹 md : 创建目录 rd : 删除目录 cd : 进入指定目录 cd.. : 退回到上一级目录 cd/ : 退回到 ...
- [.net 面向对象编程基础] (3) 基础中的基础——数据类型
[.net 面向对象编程基础] (3) 基础中的基础——数据类型 关于数据类型,这是基础中的基础. 基础..基础..基础.基本功必须要扎实. 首先,从使用电脑开始,再到编程,电脑要存储数据,就要按类型 ...
- [.net 面向对象编程基础] (4) 基础中的基础——数据类型转换
[.net面向对象编程基础] (4)基础中的基础——数据类型转换 1.为什么要进行数据转换? 首先,为什么要进行数据转换,拿值类型例子说明一下, 比如:我们要把23角零钱,换成2.30元,就需要把整形 ...
- [.net 面向对象编程基础] (5) 基础中的基础——变量和常量
[.net面向对象编程基础] (5) 基础中的基础——变量和常量 1.常量:在编译时其值能够确定,并且程序运行过程中值不发生变化的量. 通俗来说,就是定义一个不能改变值的量.既然不能变动值,那就必须 ...
- [.net 面向对象编程基础] (6) 基础中的基础——运算符和表达式
[.net 面向对象编程基础] (6) 基础中的基础——运算符和表达式 说起C#运算符和表达式,小伙伴们肯定以为很简单,其实要用好表达式,不是一件容易的事.一个好的表达式可以让你做事半功倍的效果,比如 ...
- [.net 面向对象编程基础] (7) 基础中的基础——流程控制语句
[.net 面向对象编程基础] (7) 基础中的基础——流程控制语句 本来没有这一节的内容,后来考虑到既然是一个系列文章,那么就尽可能写的详细一些,本节参考了网上朋友所写的例子,为的是让更多小伙伴学习 ...
- [.net 面向对象编程基础] (8) 基础中的基础——修饰符
[.net 面向对象编程基础] (8) 基础中的基础——修饰符 在进入C#面向对象核心之前,我们需要先对修饰符有所了解,其实我们在前面说到变量和常量的时候,已经使用了修饰符,并且说明了变量和常量的修改 ...
- python基础——高阶函数
python基础——高阶函数 高阶函数英文叫Higher-order function.什么是高阶函数?我们以实际代码为例子,一步一步深入概念. 变量可以指向函数 以Python内置的求绝对值的函数a ...
- JavaScript基础---语言基础(1)
写在前面: 通过四篇博客把JS基础中的基础整理一下,方便自己查阅,这些内容对于实际项目开发中也许并不会在意,但是作为JS的语言基础,自觉还是应该熟悉.在完成这三篇博客(JavaScript基础---语 ...
- Swift语法基础入门三(函数, 闭包)
Swift语法基础入门三(函数, 闭包) 函数: 函数是用来完成特定任务的独立的代码块.你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被用于“调用”函数 格式: ...
随机推荐
- 基于maven的javaweb项目模块化开发
转自:https://my.oschina.net/kingfire/blog/273381 基于maven的javaweb项目模块化开发 引言 考虑团队拥有多个类似项目的情况,比如一些功能差异不大的 ...
- UITableViewCell选中后子View背景色被Clear
在TableView中,当cell 处于Hightlighted(高亮)或者Selected(选中)状态下,Cell上的子控件的背景颜色会被 Clear. 解决方法:(4种) 1. 直接设置子控件的 ...
- JavaEE高级-JPA学习笔记
*JPA概述 *JPA是什么? - Java Persistence API :用于对象持久化的API - Java EE 5.0平台标准的ORM规范,使得应用程序以统一的方式访问持久化层 - JPA ...
- 魔咒词典 HDU - 1880 (字符串hash 单hash转int或者 双hash )
哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助. 给你一部魔咒词 ...
- L3-006. 迎风一刀斩
迎着一面矩形的大旗一刀斩下,如果你的刀够快的话,这笔直一刀可以切出两块多边形的残片.反过来说,如果有人拿着两块残片来吹牛,说这是自己迎风一刀斩落的,你能检查一下这是不是真的吗? 注意摆在你面前的两个多 ...
- 从输入URL到页面加载到底发生了什么
很多初学网络或者前端的初学者大多会有这样一个疑问:从输入URL到页面加载完成到底发生了什么?总的来说,这个过程分为下面几个步骤:1.DNS解析2.与服务器建立连接3.服务器处理并返回http报文4.浏 ...
- MyEclipse XML & XML架构教程:XML编辑器
[MyEclipse CI 2019.4.0安装包下载] 1. MyEclipse中的XML编辑 本文档介绍了MyEclipse XML Editor中可用的一些函数.MyEclipse XML编辑器 ...
- 前端面试题常考&必考之--盒子模型和box-sizing(项目中经常使用)
主要考察width的值,包括padding\border\content等属性??? box-sizing属性是css3特有的哦*** 1>当box-sizing:content-box;时,跟 ...
- rk3288-cc上编写一个hello world
一.编写一个hello world驱动 懒,不写了 二.编写Kconfig和Makefile 我们在kernel/driver目录下创建一个hello目录 然后创建一个Kconfig文件: confi ...
- EOF和~
输入包含多组数据 while(~scanf("%d",&n))<=> while(scanf("%d",&n)!=EOF)