1-4 创建窗口鼠标读取 opencv树莓派4B 入门系列笔记

目录

一、提前准备

二、代码详解

Mouse_Callback(event, x, y, flags, param)

cv2.setMouseCallback("mouse", Mouse_Callback)

img = np.zeros((640, 1280, 3), np.uint8)

三、运行现象 

四、完整代码

五、完整代码贴出


一、提前准备

        1、树莓派4B 及 64位系统

        2、提前安装opencv库 以及 numpy库

二、代码详解

1、定义一个鼠标回调函数

# coding=utf-8
import cv2
import numpy as np
 
#鼠标回调函数
def Mouse_Callback(event, x, y, flags, param):
    #左右键输出提示与键值,其余按键事件就不例举了,直接打印定义的键值了
    if event == cv2.EVENT_LBUTTONDOWN:
        print("L_Button Down {}\r\n".format(event))
    elif event == cv2.EVENT_RBUTTONDOWN:
        print("R_Button Down {}\r\n".format(event))
    else:
        print(event)
    #输出鼠标坐标\Flags\userdata
    print("Mouse position :  X :"+str(x)+" Y :"+str(y)+"\r\n")
    print("Flags : {}".format(flags))
    print(f"Userdata is{param}\r\n\r\n")

Mouse_Callback(event, x, y, flags, param)

  • 功能: 这是一个用户定义的回调函数,用于处理鼠标事件。
  • 参数:
    • event: 表示发生的鼠标事件类型(例如左键按下、右键按下等)。可能的事件常量包括:
      • cv2.EVENT_LBUTTONDOWN: 左键按下。
      • cv2.EVENT_RBUTTONDOWN: 右键按下。
      • 其他鼠标事件类型会直接打印事件代码。
    • x: 鼠标事件发生时的x坐标。
    • y: 鼠标事件发生时的y坐标。
    • flags: 表示事件发生时的各种状态(例如按住Shift键、Ctrl键等)。
    • param: 传递给回调函数的用户数据(userdata),在此代码中未使用。

 2、主函数

#创建窗口
cv2.namedWindow("mouse",cv2.WINDOW_NORMAL)
cv2.resizeWindow("mouse",1280,640)
 
#设置鼠标回调
cv2.setMouseCallback("mouse",Mouse_Callback)
#显示窗口与背景
img=np.zeros((640,1280,3),np.uint8)
 
while True:
    cv2.imshow("mouse",img)
    key=cv2.waitKey(1)
    if key&0XFF==ord('q'):
        break
 
#释放所有资源
cv2.destroyAllWindows()

cv2.setMouseCallback("mouse", Mouse_Callback)

  • 功能: 为指定窗口设置鼠标事件的回调函数。
  • 参数:
    • "mouse": 窗口的名称。
    • Mouse_Callback: 鼠标事件的回调函数。当在窗口上发生鼠标事件时,OpenCV会调用这个函数。

img = np.zeros((640, 1280, 3), np.uint8)

  • 功能: 创建一个全黑的图像,该图像用于在窗口中显示。
  • 参数:
    • (640, 1280, 3): 图像的尺寸。640是高度,1280是宽度,3表示图像的通道数(即RGB)。
    • np.uint8: 数据类型,表示图像中的每个像素值为0到255的整数。

三、运行现象 

四、完整代码

# coding=utf-8
import cv2
import numpy as np
 
#鼠标回调函数
def Mouse_Callback(event, x, y, flags, param):
    #左右键输出提示与键值,其余按键事件就不例举了,直接打印定义的键值了
    if event == cv2.EVENT_LBUTTONDOWN:
        print("L_Button Down {}\r\n".format(event))
    elif event == cv2.EVENT_RBUTTONDOWN:
        print("R_Button Down {}\r\n".format(event))
    else:
        print(event)
    #输出鼠标坐标\Flags\userdata
    print("Mouse position :  X :"+str(x)+" Y :"+str(y)+"\r\n")
    print("Flags : {}".format(flags))
    print(f"Userdata is{param}\r\n\r\n")	
 
#创建窗口
cv2.namedWindow("mouse",cv2.WINDOW_NORMAL)
cv2.resizeWindow("mouse",1280,640)
 
#设置鼠标回调
cv2.setMouseCallback("mouse",Mouse_Callback)
#显示窗口与背景
img=np.zeros((640,1280,3),np.uint8)
 
while True:
    cv2.imshow("mouse",img)
    key=cv2.waitKey(1)
    if key&0XFF==ord('q'):
        break
 
#释放所有资源
cv2.destroyAllWindows()

五、完整代码贴出

(持续更新中)opencv树莓派4B入门系列笔记1~5完整工程源码资源-CSDN文库

 

持续更新中……

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
树莓派4B可以安装和使用OpenCV进行图像处理和深度学习任务。根据引用中的内容,以下是树莓派4B安装OpenCV的步骤: 1. 首先,在树莓派上安装Raspbian操作系统。你可以在树莓派官方网站上找到相应的镜像文件并按照官方文档的说明进行安装。 2. 安装依赖项。在终端中运行以下命令来安装OpenCV所需的依赖项: ``` sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential cmake pkg-config sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng-dev sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev sudo apt-get install libxvidcore-dev libx264-dev sudo apt-get install libfontconfig1-dev libcairo2-dev sudo apt-get install libgdk-pixbuf2.0-dev libpango1.0-dev sudo apt-get install libgtk2.0-dev libgtk-3-dev sudo apt-get install libatlas-base-dev gfortran sudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-103 sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5 sudo pip3 install opencv-python ``` 3. 下载OpenCV源码。你可以从OpenCV官方网站上下载最新版本的源码。 4. 编译和安装OpenCV。在终端中执行以下命令: ``` cd ~ mkdir opencv cd opencv wget -O opencv.zip https://github.com/opencv/opencv/archive/4.4.0.zip unzip opencv.zip wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.4.0.zip unzip opencv_contrib.zip mv opencv-4.4.0 opencv mv opencv_contrib-4.4.0 opencv_contrib cd opencv mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib/modules \ -D ENABLE_NEON=ON \ -D ENABLE_VFPV3=ON \ -D BUILD_TESTS=OFF \ -D OPENCV_ENABLE_NONFREE=ON \ -D CMAKE_SHARED_LINKER_FLAGS=-latomic .. make -j4 sudo make install sudo ldconfig ``` 5. 验证安装。在终端中运行以下命令来验证OpenCV是否成功安装: ``` python3 import cv2 cv2.__version__ ``` 如果能够成功导入cv2模块并显示OpenCV的版本号,则说明安装成功。 通过以上步骤,你可以在树莓派4B上成功安装和使用OpenCV。请根据具体需求进行进一步的配置和应用开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sisphusssss

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值