10.31OpenCV作业

实现图片中划线并保存

python 复制代码
import cv2

def draw_test(event,x,y,flag,param):
    global drawing
    # cv2.EVENT_LBUTTONDOWN  鼠键左键按下事件
    if event == cv2.EVENT_LBUTTONDOWN:
        drawing = True
    # cv2.EVENT_MOUSEMOVE  鼠键左键移动事件
    elif event == cv2.EVENT_MOUSEMOVE:
        if drawing:
            cv2.circle(img,(x,y),15,(255,0,0),-1)

    #cv2.EVENT_LBUTTONUP  鼠键左键释放事件
    elif event == cv2.EVENT_LBUTTONUP:
        drawing = False
        cv2.circle(img, (x, y), 15, (255, 0, 0), -1)

img= cv2.imread('images/car.png')
cv2.namedWindow('image')

cv2.setMouseCallback('image', draw_test)
# 真正的标志,表示是否正在绘制
drawing = False
while(True):
    cv2.imshow('image', img)
    if cv2.waitKey(20) == 115:
        rs = cv2.imwrite("save_image/car1.png", img)
    if cv2.waitKey(20) == 27:  # 按ESC退出
        break
cv2.destroyAllWindows()

实现摄像头捕捉和文本显示且鼠标点击文本中的数字加一

python 复制代码
import cv2
from PIL import Image, ImageDraw, ImageFont
import numpy as np

def put_text(image, text, position, font_path, font_size, color):
    pil_image = Image.fromarray(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
    draw = ImageDraw.Draw(pil_image)
    font = ImageFont.truetype(font_path, font_size)
    draw.text(position, text, fill=color, font=font)
    image_with_text = cv2.cvtColor(np.array(pil_image), cv2.COLOR_RGB2BGR)
    return image_with_text

cap = cv2.VideoCapture(0)
cv2.namedWindow("name", cv2.WINDOW_NORMAL)
cv2.resizeWindow("name", 500, 300)

rocket_count = 0

def draw_test(event, x, y, flags, param):
    global rocket_count
    if event == cv2.EVENT_LBUTTONDOWN:
        rocket_count += 1

cv2.setMouseCallback("name", draw_test)

while True:
    ret, frame = cap.read()
    if ret:
        text = f"老铁们,火箭刷起来,你已刷个{rocket_count}火箭"
        position = (0, 50)
        font_path = "simhei.ttf"
        font_size = 25

        color = (255, 0, 0)
        frame = put_text(frame, text, position, font_path, font_size, color)

        cv2.imshow("name", frame)

    if cv2.waitKey(20) == 27:
        break

cap.release()
cv2.destroyAllWindows()
相关推荐
企业智能研究2 分钟前
企微智能客服赋能私域运营:从流量沉淀到高效转化的完整路径
人工智能·ai·agent·智能客服·私域运营
namexingyun7 分钟前
开源前端生态如何成为 AI UI 生成的“燃料“:shadcn/ui、Tailwind CSS、Storybook 技术价值全解剖
java·前端·人工智能·python·ui·开源·ai编程
Sharewinfo_BJ10 分钟前
当 BI 遇上 AI:到底是谁在帮谁?
大数据·人工智能·ai·数据分析·微软·powerbi
code_pgf14 分钟前
mllm训练过程中有效地利用辅助监督信号来减少幻觉的方法
人工智能·深度学习·计算机视觉
风华圆舞16 分钟前
鸿蒙 + Flutter 下 AI 助手为什么要支持流式输出
人工智能·flutter·harmonyos
爱勇宝16 分钟前
如何评价 Claude Fable 5 全球暂停访问?
人工智能·程序员
装不满的克莱因瓶17 分钟前
自然语言处理常见任务——从文本理解到生成式AI的完整任务体系
人工智能·pytorch·python·深度学习·ai·自然语言处理
朱大喜19 分钟前
AI 数据分析实战:大模型驱动的自动化报表生成,从数据到洞察的工程化链路
人工智能
wb0430720130 分钟前
阿明的二次创业——从阿明用 AI 开第二家店,看 AI 原生创业的四阶段方法论
大数据·人工智能·架构
Godspeed Zhao31 分钟前
Level 4自动驾驶系统设计0——功能与场景0
人工智能·机器学习·自动驾驶