1. import cv2
  2. import numpy as np
  3. from matplotlib import pyplot as plt
  4.  
  5. pic_path = "deal_with.png"
  6.  
  7. def cv_imread():
  8. """
  9. 读取图片
  10. :return:
  11. """
  12. # imread的第二个参数告诉函数如何读取这幅图片
  13. # 0:以灰度模式读入图像
  14. # 1:读入一副彩色图像,图像的透明度会被忽略,这是默认参数
  15. # -1:读入一幅图像,并且包括图像的alpha通道
  16. img = cv2.imread(pic_path, 0)
  17. # print(img)
  18. return img
  19.  
  20. def cv_imshow():
  21. """
  22. 显示图片
  23. :return:
  24. """
  25. img = cv_imread()
  26. cv2.imshow('image', img)
  27. cv2.waitKey(0)
  28. cv2.destroyAllWindows()
  29.  
  30. def cv_imwrite():
  31. """
  32. 保存图片
  33. :return:
  34. """
  35. img = cv_imread()
  36. cv2.imwrite(pic_path, img)
  37.  
  38. def matplotlib_show_pic():
  39. """
  40. 使用matplotlib
  41. :return:
  42. """
  43. img = cv_imread()
  44. plt.imshow(img, cmap='gray', interpolation='bicubic')
  45. plt.xticks([]), plt.yticks([])
  46. plt.show()
  47.  
  48. def cv2_video_cap():
  49. """
  50. 摄像头
  51. :return:
  52. """
  53. cap = cv2.VideoCapture(0)
  54. while True:
  55. ret, frame = cap.read()
  56. gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
  57. cv2.imshow('frame', gray)
  58. if cv2.waitKey(1) & 0xFF == ord('q'):
  59. break
  60. cap.release()
  61. cv2.destroyAllWindows()
  62.  
  63. def cv_line():
  64. """
  65. 画线
  66. :return:
  67. """
  68. img = np.zeros((512, 512, 3), np.uint8) # 读取图像,这里是一个黑色的图片
  69. cv2.line(img, (0, 0), (511, 511), (255, 0, 0), 5) # 参数:图像,起点坐标,终点坐标,颜色,粗细(-1为填充)
  70. cv2.imshow('img', img)
  71. cv2.waitKey(0)
  72.  
  73. def cv_rectangle():
  74. """
  75. 画矩形
  76. :return:
  77. """
  78. img = np.zeros((512, 512, 3), np.uint8) # 读取图像,这里是一个黑色的图片
  79. cv2.rectangle(img, (384, 0), (510, 128), (0, 255, 0), 3) # 参数:图像,左上角顶点坐标,右下角顶点坐标,颜色,粗细(-1为填充)
  80. cv2.imshow('img', img)
  81. cv2.waitKey(0)
  82.  
  83. def cv_circle():
  84. """
  85. 画圆
  86. :return:
  87. """
  88. img = np.zeros((512, 512, 3), np.uint8) # 读取图像,这里是一个黑色的图片
  89. cv2.circle(img, (447, 63), 63, (0, 255, 0), 1) # 参数:图像,圆形中心坐标,半径大小,颜色,粗细(-1为填充)
  90. cv2.imshow('img', img)
  91. cv2.waitKey(0)
  92.  
  93. def cv_ellipse():
  94. """
  95. 画椭圆
  96. :return:
  97. """
  98. img = np.zeros((512, 512, 3), np.uint8) # 读取图像,这里是一个黑色的图片
  99. cv2.ellipse(img, (256, 256), (100, 50), 0, 0, 360, 255,
  100. -1) # 参数:图像,中心点的坐标,长轴、短轴的长度,椭圆沿逆时针方向旋转的角度,椭圆弧演顺时针方向起始的角度和结束角度,如果是 0 跟 360,就是整个椭圆,颜色,粗细
  101. cv2.imshow('img', img)
  102. cv2.waitKey(0)
  103.  
  104. def cv_put_text():
  105. """
  106. 图片上添加文字
  107. :return:
  108. """
  109. img = np.zeros((512, 512, 3), np.uint8) # 读取图像,这里是一个黑色的图片
  110. font = cv2.FONT_HERSHEY_SIMPLEX # 字体类型
  111. cv2.putText(img, 'OpenCV', (10, 500), font, 4, (255, 255, 255), 2) # 参数:图像,要绘制的文字,要绘制的位置,字体类型,字体大小,颜色,粗细
  112. cv2.imshow('img', img)
  113. cv2.waitKey(0)

【opencv】opencv图像识别的一些基础的基础函数的使用方法的更多相关文章

  1. java基础(环境设置,基础语法,函数数组)

    框架图 环境搭建 课程中常见dos命令: dir : 列出当前目录下的文件以及文件夹 md : 创建目录 rd : 删除目录 cd : 进入指定目录 cd.. : 退回到上一级目录 cd/ : 退回到 ...

  2. [.net 面向对象编程基础] (3) 基础中的基础——数据类型

    [.net 面向对象编程基础] (3) 基础中的基础——数据类型 关于数据类型,这是基础中的基础. 基础..基础..基础.基本功必须要扎实. 首先,从使用电脑开始,再到编程,电脑要存储数据,就要按类型 ...

  3. [.net 面向对象编程基础] (4) 基础中的基础——数据类型转换

    [.net面向对象编程基础] (4)基础中的基础——数据类型转换 1.为什么要进行数据转换? 首先,为什么要进行数据转换,拿值类型例子说明一下, 比如:我们要把23角零钱,换成2.30元,就需要把整形 ...

  4. [.net 面向对象编程基础] (5) 基础中的基础——变量和常量

    [.net面向对象编程基础]  (5) 基础中的基础——变量和常量 1.常量:在编译时其值能够确定,并且程序运行过程中值不发生变化的量. 通俗来说,就是定义一个不能改变值的量.既然不能变动值,那就必须 ...

  5. [.net 面向对象编程基础] (6) 基础中的基础——运算符和表达式

    [.net 面向对象编程基础] (6) 基础中的基础——运算符和表达式 说起C#运算符和表达式,小伙伴们肯定以为很简单,其实要用好表达式,不是一件容易的事.一个好的表达式可以让你做事半功倍的效果,比如 ...

  6. [.net 面向对象编程基础] (7) 基础中的基础——流程控制语句

    [.net 面向对象编程基础] (7) 基础中的基础——流程控制语句 本来没有这一节的内容,后来考虑到既然是一个系列文章,那么就尽可能写的详细一些,本节参考了网上朋友所写的例子,为的是让更多小伙伴学习 ...

  7. [.net 面向对象编程基础] (8) 基础中的基础——修饰符

    [.net 面向对象编程基础] (8) 基础中的基础——修饰符 在进入C#面向对象核心之前,我们需要先对修饰符有所了解,其实我们在前面说到变量和常量的时候,已经使用了修饰符,并且说明了变量和常量的修改 ...

  8. python基础——高阶函数

    python基础——高阶函数 高阶函数英文叫Higher-order function.什么是高阶函数?我们以实际代码为例子,一步一步深入概念. 变量可以指向函数 以Python内置的求绝对值的函数a ...

  9. JavaScript基础---语言基础(1)

    写在前面: 通过四篇博客把JS基础中的基础整理一下,方便自己查阅,这些内容对于实际项目开发中也许并不会在意,但是作为JS的语言基础,自觉还是应该熟悉.在完成这三篇博客(JavaScript基础---语 ...

  10. Swift语法基础入门三(函数, 闭包)

    Swift语法基础入门三(函数, 闭包) 函数: 函数是用来完成特定任务的独立的代码块.你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被用于“调用”函数 格式: ...

随机推荐

  1. Centos6.6安装MySQL5.6.24

    1.首先需要编译器gcc 编译器和cmake yum -y install gcc+ gcc-c++ cd /usr/local/src wget http://www.cmake.org/files ...

  2. Codeforces1221D. Make The Fence Great Again(dp)

    题目链接:传送门 思路: 仔细想一下可以发现:每个位置最多就增加2个高度. 所以就可以有状态: f[i][j]表示保证前i个篱笆都是great时,第i个篱笆增加j的高度所需要的最小花费(1 <= ...

  3. codeforces 57 C Array(简单排列组合)

    C. Array time limit per test 2 seconds memory limit per test 256 megabytes input standard input outp ...

  4. KeSetEvent

    KeSetEvent https://bbs.pediy.com/ dll inject   dll注入

  5. do{}while(0);里面有continue

    do{}while(0);里面有continue,退出的只是do{}while(0);

  6. 使用git管理文件版本

    创建版本库 什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以 ...

  7. python-语言播报

       利用系统自带模块: 在cmd中  python -m pip install pypiwin32   安装win32com模块 import win32com.client sp=win32co ...

  8. 大数据学习笔记之初识Hadoop

    1.Hadoop概述 1.1 Hadoop名字的由来 Hadoop项目作者的孩子给一个棕黄色的大象样子的填充玩具的命名 Hadoop的官网:http://hadoop.apache.org . 1.2 ...

  9. 【leetcode】848. Shifting Letters

    题目如下: 解题思路:本题首先要很快速的计算出任意一个字符shift后会变成哪个字符,其实也很简单,让shift = shift % 26,接下来再做计算.第二部是求出每个字符要shift的次数.可以 ...

  10. js 获取滚动位置,滚动到指定位置,平滑滚动

    1.获取当前滚动条位置信息 var top = dom.scrollTop; // 获取y轴上的滚动位置 var left = dom.scrollLeft; // 获取x轴上的滚动位置 2.滚动到指 ...