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

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

3天内不再提示

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

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

案例实战

1、简易调色板

def ColorPalette():
    # 简易调色板
    def callback(value):
        print(value)
    # trackbar控件
    cv2.namedWindow("trackbar",cv2.WINDOW_NORMAL)
    cv2.resizeWindow("trackbar",640,480)
    cv2.createTrackbar("R","trackbar",0,255,callback)
    cv2.createTrackbar("G","trackbar",0,255,callback)
    cv2.createTrackbar("B","trackbar",0,255,callback)


    bg = np.zeros((480,640,3),np.uint8)


    while True:
        r = cv2.getTrackbarPos("R","trackbar")
        g = cv2.getTrackbarPos("G", "trackbar")
        b = cv2.getTrackbarPos("B", "trackbar")
        bg[:] = [b,g,r]
        cv2.imshow("trackbar",bg)
        key = cv2.waitKey(20)
        if key == 27:
            break
    cv2.destroyAllWindows()


# ColorPalette()

2、创建画布,按下指定键画指定图案

def CaptureShape(img):
    # 创建画布,按下指定键画指定图案
    cur_shape = 0
    # 初始坐标
    start_pos = (0,0)


    def mouse_callback(event,x,y,flags,userdata):
        nonlocal start_pos,cur_shape
        # 鼠标按下
        if event == cv2.EVENT_LBUTTONDOWN:
            start_pos = (x,y)
        # 鼠标松开
        elif event == cv2.EVENT_LBUTTONUP:
            if cur_shape == 0:
                cv2.line(img,start_pos,(x,y),(0,255,255),2)
            elif cur_shape == 1:
                cv2.rectangle(img,start_pos,(x,y),(255,0,255),2)
            elif cur_shape==2:
                a = (x-start_pos[0])
                b = (y-start_pos[1])
                r = int((a**2+b**2)**0.5)
                cv2.circle(img,start_pos,r,(255,255,0),2)
            else:
                print("not support")


    cv2.namedWindow('draw',cv2.WINDOW_NORMAL)
    cv2.setMouseCallback('draw',mouse_callback)


    while True:
        # 按下l键画直线,按下r键画矩形,按下c键画圆
        cv2.imshow('draw',img)
        key = cv2.waitKey(1)
        if key == 27:
            break
        elif key == ord("l"):
            cur_shape = 0
        elif key == ord("r"):
            cur_shape =1
        elif key == ord("c"):
            cur_shape =2


    cv2.destroyAllWindows()
# img = np.zeros([500,500,3],np.uint8)
# CaptureShape(img)

3、人脸检测

def FaceDetect():
    # 人脸检测
    face_detector = cv2.CascadeClassifier("./haarcascade_frontalface_alt.xml")
    while True:
        cap = cv2.VideoCapture(0)
        ret,frame = cap.read()
        gray = cv2.cvtColor(frame,code=cv2.COLOR_BGR2GRAY)
        face = face_detector.detectMultiScale(gray)
        for x,y,w,h in face:
            cv2.circle(frame,(x+w//2,y+h//2),w//2,(0,255,255),2)
        cv2.imshow("img",frame)
        key = cv2.waitKey(20)
        if key == 27:
            break
    cap.release()
    cv2.destroyAllWindows()
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    185

    文章

    2976

    浏览量

    230466
  • 开源
    +关注

    关注

    3

    文章

    3348

    浏览量

    42496
  • OpenCV
    +关注

    关注

    31

    文章

    635

    浏览量

    41347
收藏 人收藏

    评论

    相关推荐

    OpenCV_编程简介(入门必读)

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

    OpenCV开发环境的配置

    OpenCV3编程入门》书本配套源代码:OpenCV开发环境的配置
    发表于 06-06 15:20 8次下载

    创建包围轮廓的圆形边界_《OpenCV3编程入门》书本配套源代码

    OpenCV3编程入门》书本配套源代码:创建包围轮廓的圆形边界
    发表于 06-06 15:39 3次下载

    初级图像混合_《OpenCV3编程入门》书本配套源代码

    OpenCV3编程入门》书本配套源代码:初级图像混合
    发表于 06-06 15:39 3次下载

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

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

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

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

    图像显示_《OpenCV3编程入门》书本配套源代码

    OpenCV3编程入门》书本配套源代码:图像显示
    发表于 06-06 15:52 5次下载

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

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

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

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

    用指针访问像素_《OpenCV3编程入门》书本配套源代码

    OpenCV3编程入门》书本配套源代码:用指针访问像素
    发表于 06-06 15:54 9次下载

    OpenCV入门OpenCV的基本操作1

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

    OpenCV入门OpenCV的基本操作2

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

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