0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenCV入门之OpenCV的基本操作1

jf_78858299 来源:DL INtoOUT 作者: AN 2023-02-07 14:19 次阅读

OpenCV 简介,环境安装( python

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

OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令,如今也提供对于C#、Ch、Ruby,GO的支持。

安装( Python :在需要安装的环境中直接输入pip install opencv-python

目录:

1 、读取、显示、保存图像、读取视频

** 2 、绘制直线、矩形、圆、椭圆、多边形、文本 **

3、图像基本认知:RGB、Gray、HSV等

4、通道分离与合并、色域转换、像素运算

5、案例总结(简易调色板,简易截图工具,人脸检测

OpenCV****基本操作

1 、读取、显示、保存图像、读取视频

在cv2.imshow()之后要跟着cv2.waitkey(),waitkey()控制着imshow的持续时间,当imshow之后不跟waitkey时,只有一个空窗口一闪而过,相当于没有给imshow提供时间展示图像。destroyAllWindows()为销毁窗口。

def ReadImg():
    # 创建窗口
    cv2.namedWindow('demo',cv2.WINDOW_NORMAL)
    # 调整窗口大小,(w,h)
    cv2.resizeWindow('demo',500,300)
    # 读取图像
    img = cv2.imread("./images/test.jpg")
    # 保存图像
    cv2.imwrite('./images/rewrite.jpg',img)
    # 转换灰度图
    # black_white = cv2.imread("./images/test.jpg",cv2.IMREAD_GRAYSCALE)
    cv2.imshow("demo",img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()


def ReadVideo():
    # capture = cv.VideoCapture(0)
    # 0是打开摄像头,也可以是输入视频文件的路径
    capture = cv2.VideoCapture(0, cv2.CAP_DSHOW)
    while True:
        ret, frame = capture.read()
        cv2.imshow("video", frame)
        c = cv2.waitKey(10)
        if c == 27:  # 表示键盘输入的是ESC
            break
# video_demo()
img = cv2.imread("./images/test.jpg")
print(type(img))
print(img.shape)
# 
# (369, 720, 3)

读取的图像以numpy存储,img.shape返回图像的高、宽。

2 、绘制直线、矩形、圆、椭圆、多边形、文本

def DrawGraph():
    # 创建一个纯黑的背景
    bg = np.zeros([500,500,3],np.uint8)
    # 画矩形,cv2.rectangle(img,左上角点,右下角点,颜色,线条宽度)
    cv2.rectangle(bg,(0,0),(100,100),[0,255,0],2)
    cv2.rectangle(bg,(100,100),(200,300),[0,0,255],2)
    # 画圆, cv2.circle(img,圆心,半径,颜色,线条宽度)
    cv2.circle(bg,(200,300),100,(255,0,0),2)
    # 画椭圆,cv2.ellipse(img,中心点,长轴短轴,倾斜角度,开始角度,结束角度,color,thickness)
    cv2.ellipse(bg,(200,100),(100,50),90,0,360,color=(255,255,0),thickness=2)
    cv2.ellipse(bg,(200,100),(50,100),0,90,180,color=(255,0,255),thickness=2)
    # 写文字,cv2.putText(img,"OpenCV",位置,字体,大小,颜色,宽度)
    cv2.putText(bg,"OpenCV",(100,350),cv2.FONT_HERSHEY_SIMPLEX,2,(0,255,255),2)
    # 绘制多边形
    pts = np.array([(300, 100), (260, 200), (390, 200)], np.int32)
    cv2.polylines(bg,[pts],True,(0,255,0),2)
    cv2.fillPoly(bg,[pts],(105,10,90))
    # 展示
    cv2.imshow("demo", bg)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

示例

图片

注:坐标原点在图像左上角

行数,rows其实对应于坐标轴上的y,即表示的是图像的高度,竖直方向;

列数,cols对应于坐标轴上的x,即表示的是图像的宽度,水平方向;

椭圆中旋转为顺时针旋转。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    184

    文章

    2970

    浏览量

    230359
  • 开源
    +关注

    关注

    3

    文章

    3302

    浏览量

    42458
  • C++
    C++
    +关注

    关注

    22

    文章

    2108

    浏览量

    73607
  • OpenCV
    +关注

    关注

    31

    文章

    634

    浏览量

    41331
  • ruby
    +关注

    关注

    0

    文章

    44

    浏览量

    3451
收藏 人收藏

    评论

    相关推荐

    OpenCV_编程简介(入门必读)

    opencv编程简介,入门必读,适合新手简单了解opencv的相关知识。
    发表于 03-21 13:49 12次下载

    基本阈值操作_《OpenCV3编程入门》书本配套源代码

    OpenCV3编程入门》书本配套源代码:基本阈值操作
    发表于 06-06 15:39 8次下载

    基本鼠标操作_《OpenCV3编程入门》书本配套源代码

    OpenCV3编程入门》书本配套源代码:基本鼠标操作
    发表于 06-06 15:39 5次下载

    OpenCV进行基本绘图_《OpenCV3编程入门》书本配套源

    OpenCV3编程入门》书本配套源代码:用OpenCV进行基本绘图
    发表于 05-11 16:46 36次下载

    支持向量机SVM引导_《OpenCV3编程入门》书本配套源代码

    OpenCV3编程入门》书本配套源代码:支持向量机SVM引导
    发表于 06-06 15:52 2次下载

    OpenCV3编程入门-源码例程全集-OpenCV开发环境的配置

    OpenCV3编程入门-源码例程全集-OpenCV开发环境的配置,感兴趣的小伙伴们可以瞧一瞧。
    发表于 09-18 16:27 20次下载

    OpenCV3编程入门-源码例程全集-基本阈值操作

    OpenCV3编程入门-源码例程全集-基本阈值操作,感兴趣的小伙伴们可以瞧一瞧。
    发表于 09-18 16:55 0次下载

    OpenCV3编程入门-源码例程全集-基本鼠标操作

    OpenCV3编程入门-源码例程全集-基本鼠标操作,感兴趣的小伙伴们可以瞧一瞧。
    发表于 09-18 16:55 0次下载

    支持向量机SVM引导_OpenCV3编程入门-源码例程

    OpenCV3编程入门-源码例程全集-支持向量机SVM引导,感兴趣的小伙伴们可以瞧一瞧。
    发表于 09-18 17:02 1次下载

    OpenCV进行基本绘图_OpenCV3编程入门-源码例程

    OpenCV3编程入门-源码例程全集-用OpenCV进行基本绘图,感兴趣的小伙伴们可以瞧一瞧。
    发表于 09-18 17:02 3次下载

    OpenCV入门OpenCV的基本操作2

    OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列
    的头像 发表于 02-07 14:19 842次阅读
    <b class='flag-5'>OpenCV</b><b class='flag-5'>入门</b><b class='flag-5'>之</b><b class='flag-5'>OpenCV</b>的基本<b class='flag-5'>操作</b>2

    OpenCV入门OpenCV的基本操作实战代码

    OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列
    的头像 发表于 02-07 14:24 765次阅读

    OpenCV入门OpenCV的基本操作3

    OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列
    的头像 发表于 02-07 14:33 609次阅读
    <b class='flag-5'>OpenCV</b><b class='flag-5'>入门</b><b class='flag-5'>之</b><b class='flag-5'>OpenCV</b>的基本<b class='flag-5'>操作</b>3

    OpenCV入门OpenCV的基本操作4

    OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列
    的头像 发表于 02-07 14:34 604次阅读
    <b class='flag-5'>OpenCV</b><b class='flag-5'>入门</b><b class='flag-5'>之</b><b class='flag-5'>OpenCV</b>的基本<b class='flag-5'>操作</b>4

    OpenCV入门OpenCV的基本操作5

    OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列
    的头像 发表于 02-07 14:35 554次阅读