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()
相关推荐
几分醉意.几秒前
先发制人:用 Bright Data 抢先捕捉 TikTok 爆款内容(附实战案例)
java·大数据·人工智能
小浣熊喜欢揍臭臭几秒前
【OpenSkills使用二】自定义 Skill 的实现
人工智能·ai编程
AI生成未来2 分钟前
图像生成迎来“思考-研究-创造”新范式!Mind-Brush:统一意图分析、多模态搜索和知识推理
人工智能·计算机视觉·aigc·agent·图像生成
知智前沿5 分钟前
AI重塑开发流程:从TRAE实战到编程效率翻倍
人工智能
WJSKad12358 分钟前
[特殊字符] Mimi音频神经网络编解码器:高保真声音处理的突破
人工智能·神经网络·音视频
简简单单做算法10 分钟前
基于WOA鲸鱼优化的LSTM长短记忆网络模型的文本分类算法matlab仿真
人工智能·分类·lstm·文本分类·woa鲸鱼优化·woa-lstm
袋鼠云数栈10 分钟前
能源矿产行业 Data + AI 数智化全景解决方案——构建集团级智慧运营生产体系的系统路径
大数据·人工智能·能源·数据治理
放下华子我只抽RuiKe510 分钟前
机器学习全景指南-进阶篇——解决分类问题的逻辑回归
人工智能·机器学习·分类·逻辑回归·文心一言·ai编程·智能体
算法狗210 分钟前
大模型面试题:prefixDecodercausalDecoder和EncoderDecodder的区别是什么
人工智能·深度学习·语言模型
火山引擎开发者社区11 分钟前
来ArkClaw零门槛「养虾」!火山方舟Coding Plan用户抢先体验
人工智能