OpenCV-opencv下载安装和基本操作

这篇具有很好参考价值的文章主要介绍了OpenCV-opencv下载安装和基本操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、实验目的

本实验目的是学习如何使用opencv库来读取文件并显示图象,学习opencv中的基本事件——窗口事件,鼠标事件、键盘事件以及滑动条事件,同时熟悉OpenCV库的函数和方法,为进一步学习和应用计算机视觉和图像处理提供基础。

二、实验内容

1、opencv的安装

2、opencv的基本操作 - 图像输入输出模块:通过cv2.imread()函数读取图像文件,并使用cv2.imshow()函数显示图像。使用cv2.waitKey()等待按键响应,然后使用cv2.destroyAllWindows()关闭窗口。使用shape属性获取图像的形状(高度、宽度)。使用cv2.imwrite()函数将图像保存到指定的文件中。 - opencv界面编程:界面编程主要由High-level GUI模块支持。 - 单窗口显示多图片:使用hstack函数实现单窗口显示多幅图像。 - 销毁窗口:使用destroyWindow和destroyAllWindows来销毁窗口,前者为销毁某一个制定名称的窗口,后者为销毁所有的窗口。 - 鼠标事件:我们使用鼠标事件来实现与用户的交互操作,有鼠标点击事件、鼠标移动事件、鼠标释放事件等。 - 键盘事件:键盘事件由waitKey函数实现。 - 滑动条事件:使用cv2.createTrackbar()函数创建一个滑动条,并指定滑动条的名称、所属窗口、数值范围和初始值等参数。定义一个滑动条事件的回调函数,并将其与窗口绑定。在滑动条事件回调函数中,根据滑动条的数值变化对图像进行实时更新和显示。

三、实验过程

OpenCV-python的安装与配置

python下载和环境配置

1.前往python官网进行对应版本的下载

OpenCV-opencv下载安装和基本操作,opencv-python,opencv,人工智能,计算机视觉

2.下载完成打开程序进行配置,点击Install Now 也可以进行安装目录的更改

OpenCV-opencv下载安装和基本操作,opencv-python,opencv,人工智能,计算机视觉

3.检测安装成果,打开命令行窗口,输入pyhthon

如果显示如下图就安装配置成功

OpenCV-opencv下载安装和基本操作,opencv-python,opencv,人工智能,计算机视觉

PIP镜像

再命令行窗口分别运行以下两行代码,如下图

第一行是更新pip

第二行是把pip对应的国外网站改为镜像国内的,提高下载速度 python -m pip install --upgrade pip pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

OpenCV-opencv下载安装和基本操作,opencv-python,opencv,人工智能,计算机视觉

安装Numpy

打开命令行输入 pip install numpy

来下载Numpy包,如图(不更改pip镜像会很慢)
OpenCV-opencv下载安装和基本操作,opencv-python,opencv,人工智能,计算机视觉

安装openCV-python

命令行运行 pip install opencv-python

如图
OpenCV-opencv下载安装和基本操作,opencv-python,opencv,人工智能,计算机视觉

再安装一下openCV的扩展包,后面接版本号,和我们安装openCV版本一致即可 pip install opencv-contrib-python4.8.0.76

再安装一个可视化库 pip install matplotlib

OpenCV-opencv下载安装和基本操作,opencv-python,opencv,人工智能,计算机视觉

检验opencv安装是否成功

命令行先输入python

然后导入一下包 import cv2

再检查一下版本 cv2.version

如果能正常显示版本就是安装成功,然后exit()退出即可

openCV-python的基本操作

图像输入和展示以及写出

    # 读取图像文件
    src_image = cv2.imread('bird.jpg', cv2.IMREAD_COLOR)
    gray_image = cv2.imread('bird.jpg', cv2.IMREAD_GRAYSCALE)
    cv2.imshow("src_image", src_image)
    print(src_image.shape)
    cv2.waitKey(0)
    
    # 写入图像文件
    cv2.imwrite('gray_image.jpg', gray_image)

效果展示

图像写入和展示

OpenCV-opencv下载安装和基本操作,opencv-python,opencv,人工智能,计算机视觉

灰度图像的写入

OpenCV-opencv下载安装和基本操作,opencv-python,opencv,人工智能,计算机视觉

openCV界面编程

    OpenCV界面编程 
    img = cv2.imread('image.jpg') 
    cv2.imshow("mying", img) 
    cv2.waitKey(0)

效果展示

对应图片会出现在以mying命名的窗口中

OpenCV-opencv下载安装和基本操作,opencv-python,opencv,人工智能,计算机视觉

单窗口显示多图片

    # 单窗口显示多图片
    
    def opencv_muti_pic():
        img1 = cv2.imread('1.jpg')
        print(img1.shape)
        img2 = cv2.imread('1.jpg')
        print(img2.shape)
        img3 = cv2.imread('1.jpg')
        print(img3.shape)
        imgs = np.hstack([img1, img2, img3])
        # 展示多个
        cv2.imshow('mutil_pic', imgs)
        # 等待关闭
        cv2.waitKey(0)
    
    
    opencv_muti_pic()

效果展示

OpenCV-opencv下载安装和基本操作,opencv-python,opencv,人工智能,计算机视觉

鼠标事件

    鼠标事件 # 回调函数,用于处理鼠标事件 
    def mouse_callback(event, x, y, flags, param): 
        if event == cv2.EVENT_MOUSEMOVE: # 鼠标移动事件 
            print('Mouse moved at (%d, %d)' % (x, y)) 
        elif event == cv2.EVENT_LBUTTONDOWN: # 鼠标左键按下事件 
            print('Left button down at (%d, %d)' % (x, y)) 
        elif event == cv2.EVENT_RBUTTONDOWN: # 鼠标右键按下事件 
            print('Right button down at (%d, %d)' % (x, y)) 
        elif event == cv2.EVENT_MBUTTONDOWN: # 鼠标中键按下事件
            print('Middle button down at (%d, %d)' % (x, y)) 
        elif event == cv2.EVENT_LBUTTONUP: # 鼠标左键释放事件 
            print('Left button up at (%d, %d)' % (x, y)) 
        elif event == cv2.EVENT_RBUTTONUP: # 鼠标右键释放事件 
            print('Right button up at (%d, %d)' % (x, y)) 
        elif event == cv2.EVENT_MBUTTONUP: # 鼠标中键释放事件 
            print('Middle button up at (%d, %d)' % (x, y))
        elif event == cv2.EVENT_LBUTTONDBLCLK: # 鼠标左键双击事件 
            print('Left button double-clicked at (%d, %d)' % (x, y)) 
        elif event == cv2.EVENT_RBUTTONDBLCLK: # 鼠标右键双击事件 
            print('Right button double-clicked at (%d, %d)' % (x, y)) 
        elif event == cv2.EVENT_MBUTTONDBLCLK: # 鼠标中键双击事件 
            print('Middle button double-clicked at (%d, %d)' % (x, y))
    # 创建一个名为 "image" 的窗口
    cv2.namedWindow('image')
    # 读取图像
    img = cv2.imread('image.jpg')
    # 在窗口中显示图像
    cv2.imshow('image', src_image)
    # 设置鼠标回调函数
    cv2.setMouseCallback('image', mouse_callback)
    cv2.waitKey(0)
    # 关闭窗口
    cv2.destroyAllWindows()

效果展示

OpenCV-opencv下载安装和基本操作,opencv-python,opencv,人工智能,计算机视觉

对应输出结果会随鼠标指针在图像上的位置而变化
OpenCV-opencv下载安装和基本操作,opencv-python,opencv,人工智能,计算机视觉

键盘事件

    # 键盘事件 
    img7 = numpy.zeros((100, 200)) 
    cv2.imshow("windowname", img7 
    key1 = cv2.waitKey(0) # 任意按键按下,图片显示结束,返回按键键值 
    print("按下的键值:", key1) 
    cv2.imshow("windowname2", img7) 
    key2 = cv2.waitKey(5000) # 任意按键按下,图片显示结束,返回按键键值 
    print("按下的键值:", key2) 
    cv2.destroyAllWindows()

效果展示

键盘事件

输入q的情况,会返回对应的q的ASCII码值

OpenCV-opencv下载安装和基本操作,opencv-python,opencv,人工智能,计算机视觉

第二个窗口长期不按会显示-1的返回结果

OpenCV-opencv下载安装和基本操作,opencv-python,opencv,人工智能,计算机视觉

滑动条事件

    滑动条事件
        # 回调函数,用于处理滑动条变化事件
        def TrackbarCallback(value):
            print('Trackbar value is: %d' % value)
    
    
        # 创建一个名为 "image" 的窗口
        cv2.namedWindow('image')
        # 读取图像
        img = cv2.imread('image.jpg')
        # 在窗口中显示图像
        cv2.imshow('image', img)
        # 创建一个名为 "slider" 的滑动条
        cv2.createTrackbar('slider', 'image', 0, 100, TrackbarCallback)
        # 获取滑动条的当前值
        slider_value = cv2.getTrackbarPos('slider', 'image')
        print('Initial slider value: %d' % slider_value)
        # 设置滑动条的值
        cv2.setTrackbarPos('slider', 'image', 50)
        # 循环等待键盘输入
        while True:
            key = cv2.waitKey(10)
            if key == ord('q'):
                break
        # 关闭窗口
        cv2.destroyAllWindows()

效果展示
OpenCV-opencv下载安装和基本操作,opencv-python,opencv,人工智能,计算机视觉
通过鼠标滑动图片上方的滑动条可以再控制台动态的输出滑动条信息

OpenCV-opencv下载安装和基本操作,opencv-python,opencv,人工智能,计算机视觉

四、实验结果

实验结果已经在实验过程中写出,实验结果的所有截图均可在实验过程中查看,这里不做过多展示

五、实验总结

通过本次实验,我对以下知识有了更好的掌握:文件读取和图像显示:学习如何使用OpenCV库来读取图像文件并在窗口中显示图像,这是图像处理的基础操作。窗口事件:了解如何处理窗口事件,比如窗口的关闭事件,以确保图像显示过程中的交互性和稳定性。鼠标事件:学习如何捕获和处理鼠标事件,比如点击、移动和拖拽等,为图像标记、交互式测量等功能的实现奠定基础。键盘事件:掌握如何处理键盘事件,比如按键响应和组合操作,为实现键盘控制的图像处理流程打下基础。滑动条事件:了解如何创建和使用滑动条,实现图像处理参数的实时调整和交互式控制。为进一步学习和应用计算机视觉和图像处理奠定基础。文章来源地址https://www.toymoban.com/news/detail-773915.html

到了这里,关于OpenCV-opencv下载安装和基本操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV基本图像处理操作(一)——图像基本操作与形态学操作

    图像显示 转hsv图像 颜色表示为三个组成部分:色调(Hue)、饱和度(Saturation)和亮度(Value)。常用于图像处理中,因为它允许调整颜色的感知特性,如色彩和亮度,这些在RGB颜色模型中不那么直观。 HSV模型特别适用于任务如图像分割和对象追踪,因为它可以更好地处理光

    2024年04月22日
    浏览(82)
  • Opencv+Python图像基本操作

    目录 图像的读取、显示和保存 获取图像属性  图像截取  绘图功能 画线 画矩形 画圆圈 画椭圆          画多边形 向图像添加文本 cv2.imread() ,  cv2.imshow() ,  cv2.imwrite()分别表示读取图片,显示图片,写入图片   retval = cv2.imread(文件名 [,显示控制参数]) cv2.IMREAD_UNCHANGED:不改

    2024年02月04日
    浏览(50)
  • opencv学习(一)图像的基本操作

    cv2.IMREAD_COLOR:彩色图像 cv2.IMREAD_GRAYSCALE:灰度图像 cv2.imread()读取图片,当括号里面是 1 时,也就是替代了cv2.IMREAD_COLOR,得到 彩色图 。 cv2.imread()读取图片,当括号里面是 0 时,替代了cv2.IMREAD_GRAYSCALE,得到 灰度图 。 cv.inshow()函数为创建一个展示窗口,括号里面分别为 图片名字

    2024年02月05日
    浏览(103)
  • 10- OpenCV:基本阈值操作(Threshold)

    目录 1、图像阈值 2、阈值类型 3、代码演示 1、图像阈值 (1)图像阈值(threshold)含义:是将图像中的像素值划分为不同类别的一种处理方法。通过设定一个特定的阈值,将像素值与阈值进行比较,根据比较结果将像素分为两个或多个类别。         阈值 是什么?简单点

    2024年01月18日
    浏览(45)
  • Lesson2-1:OpenCV基本操作

    图像的基础操作 学习目标 掌握图像的读取和保存方法 能够使用OpenCV在图像上绘制几何图形 能够访问图像的像素 能够获取图像的属性,并进行通道的分离和合并 能够实现颜色空间的变换 1 图像的IO操作 这里我们会给大家介绍如何读取图像,如何显示图像和如何保存图像。

    2024年02月12日
    浏览(37)
  • C# 使用OpenCV基本图像操作功能

    OpenCV是一个开源的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。C#在上位机开发中比较常用,有些项目需要在上位机上加入一些机器视觉相关的功能,在下面简单介绍了C#中使用OpenCV库的方法。 在管理NuGet包中,搜索OpenCvSharp4,安装

    2024年02月15日
    浏览(62)
  • Opencv 基本操作五 各种连通域处理方法

    在深度学习中,尤其是语义分割模型部署的结果后处理中,离不开各类形态学处理方法,其中以连通域处理为主;同时在一些传统的图像处理算法中,也需要一些形态学、连通域处理方法。为此,整理了一些常用的连通域处理函数:查找图像中最大的连通域、删除图像中小面

    2024年02月02日
    浏览(48)
  • OpenCV基本操(IO操作,读取、显示、保存)

    参数: 要读取的图像 读取图像的方式: cv.IMREAD*COLOR :以彩色模式加载图像,任何图像的图像的透明度都将被忽略。这是默认参数 标志: 1 cv.IMREAD*GRAYSCALE :以灰度模式加载图像 标志: 0 cv.IMREAD_UNCHANGED :包括alpha通道(透明通道)的加载图像模式。 标志: -1 可以使用 1、0或者

    2024年02月10日
    浏览(64)
  • Python Opencv实践 - 基本图像IO操作

       

    2024年02月14日
    浏览(57)
  • 基于PySimpleGUI的Opencv基本操作(Python实现)

    欢迎交流学习 使用PySimpleGUI模块,对OpenCV基本功能进行可视化展示,主要包括 图像通道转换(HSV,彩色通道,灰度通道) 图像大小,对比度,亮度的调整 HSV模式下的色彩追踪(色相,饱和度,明度) 图像直方图(均值化,CLAHE) 图像的模糊处理(中值模糊,高斯模糊,双边

    2024年02月03日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包