开源挑战:用旧手机造机器人眼睛

用报废手机给机器人装上"眼睛"!

📌 材料:闲置安卓机×1 + 电脑×1

💡 原理:手机变网络摄像头 + OpenCV颜色追踪

🌱 环保价值:让电子垃圾重获新生,减少0.5kg碳排放

附录:robot_eye.py 完整代码(直接复制使用)

python 复制代码
#!/usr/bin/env python3
"""
🤖 机器人之眼 | 开源再造计划
✨ 用旧手机+OpenCV实现视觉追踪
🌍 环保提示:本项目让电子垃圾重获新生,减少碳排放
🔗 代码开源协议:MIT License
"""
import cv2
import numpy as np
import sys

def main(stream_url):
    cap = cv2.VideoCapture(stream_url)
    if not cap.isOpened():
        print("❌ 无法连接手机摄像头!请检查:")
        print("1. 手机与电脑是否在同一Wi-Fi")
        print("2. IP Webcam是否已启动")
        return
    
    cv2.namedWindow('🤖 机器人之眼 | 开源再造计划', cv2.WINDOW_NORMAL)
    print("✅ 启动成功!将红色物体移至镜头前...")
    
    while True:
        ret, frame = cap.read()
        if not ret:
            break
        
        # 转HSV空间检测红色(含两种红色范围)
        hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
        lower_red1 = np.array([0, 100, 100])
        upper_red1 = np.array([10, 255, 255])
        lower_red2 = np.array([160, 100, 100])
        upper_red2 = np.array([180, 255, 255])
        mask = cv2.inRange(hsv, lower_red1, upper_red1) + cv2.inRange(hsv, lower_red2, upper_red2)
        
        # 轮廓追踪
        contours, _ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
        if contours:
            largest = max(contours, key=cv2.contourArea)
            if cv2.contourArea(largest) > 500:
                x, y, w, h = cv2.boundingRect(largest)
                cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 3)
                cv2.putText(frame, "TARGET LOCKED!", (x, y-10), 
                           cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2)
        
        cv2.imshow('🤖 机器人之眼 | 开源再造计划', frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    
    cap.release()
    cv2.destroyAllWindows()

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("用法: python3 robot_eye.py <手机视频流URL>")
        print("示例: python3 robot_eye.py http://192.168.1.100:8080/video")
        sys.exit(1)
    main(sys.argv[1])

#开源新春集福 #地瓜机器人 #OpenLoong开源社区 #AtomGit

相关推荐
GitCode官方4 天前
开源聚力,筑梦鸿蒙 PC|高校开源项目鸿蒙化适配与上架实践沙龙圆满收官
人工智能·ai·开源鸿蒙·鸿蒙pc·atomgit
网络毒刘11 天前
把个人 Prompt 库迁到 AtomGit:版本化、评审与在 Cursor 中通过 @ 引用
prompt·cursor·atomgit·版本化·工具实践
网络毒刘12 天前
为 MCP 写集成测试:mock stdio、断言 tool schema,防止升级后静默坏掉
测试·schema·mcp·atomgit
网络毒刘12 天前
AtomGit 秋季活动向:AI 工具链相关开源仓库如何写好 README 与示例路径
开源·readme·ai工具链·atomgit
网络毒刘16 天前
手写一个最小 MCP Server:stdio 传输、两个 tools、在 Cursor 里验通调用链
cursor·mcp·stdio·atomgit·工具实践
网络毒刘17 天前
开源 MCP 服务器怎么选:五个 AtomGit/GitHub 可自托管候选与适用场景速查
开源·cursor·mcp·atomgit·工具实践
行者-全栈开发18 天前
【码动四季·秋】从 commit 到发版全自动:Conventional Commits + semantic-release 发布流水线实战
git·ci/cd·自动化发布·atomgit·semantic-releas·语义化版本自动化·git 提交规范落地
熊猫钓鱼>_>20 天前
开源鸿蒙平台 KMP 三方库 Essenty 适配全流程:从生命周期抽象到状态重建验证
华为·开源·harmonyos·鸿蒙·kmp·atomgit·essenty
GitCode官方21 天前
“开源共生 共赢未来”2026北京昇腾生态先锋中心系列活动之算子实操工坊成功举办
人工智能·开源·昇腾·atomgit
GitCode官方1 个月前
开源鸿蒙跨平台直播|napigen 开源鸿蒙跨端实践:打通 Flutter 与 ArkTS
人工智能·鸿蒙pc·atomgit