Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/MIUAV/vibe-coding-ros2 --skill basics명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
SOC 직업 분류 기준
| name | basics |
| description | OpenCV4 基础技能 - 图像读取、显示、保存、绘制、色彩空间转换 |
| user-invocable | true |
| argument-hint | opencv基础 OR 图像读取 OR imread OR imshow OR 色彩空间 |
OpenCV 基础操作完整指南
当需要以下帮助时使用此技能:
Image (Mat) → Processing → Display/Save
│
├── imread() # 读取图像
├── imshow() # 显示图像
├── imwrite() # 保存图像
├── cvtColor() # 色彩空间转换
└── line()/rectangle()/circle()/putText() # 绘制
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 显示图像
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 保存图像
cv2.imwrite('output.jpg', img)
# 绘制
cv2.line(img, (0,0), (100,100), (0,255,0), 2)
cv2.rectangle(img, (50,50), (150,150), (255,0,0), 2)
cv2.circle(img, (100,100), 30, (0,0,255), -1)
cv2.putText(img, 'Hello', (10,30), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,255,255), 2)
#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
using namespace cv;
int main() {
Mat img = imread("image.jpg");
Mat gray;
cvtColor(img, gray, COLOR_BGR2GRAY);
imshow("Image", img);
waitKey(0);
imwrite("output.jpg", img);
line(img, Point(0,0), Point(100,100), Scalar(0,255,0), 2);
rectangle(img, Point(50,50), Point(150,150), Scalar(255,0,0), 2);
circle(img, Point(100,100), 30, Scalar(,,), );
(img, , (,), FONT_HERSHEY_SIMPLEX, , (,,), );
;
}
| 转换 | OpenCV 常量 |
|---|---|
| BGR → Gray | COLOR_BGR2GRAY |
| BGR → HSV | COLOR_BGR2HSV |
| BGR → RGB | COLOR_BGR2RGB |
| Gray → BGR | COLOR_GRAY2BGR |
| HSV → BGR | COLOR_HSV2BGR |
图像加载后检查:确保图像不为空
if img is None:
raise ValueError("Failed to load image")
NumPy 与 OpenCV 转换:
img[:,:,::-1]数据类型:
uint8 (0-255)np.clip()ROS2 集成:
# ROS2 Image 消息转 OpenCV
def image_callback(msg: Image):
img = bridge.imgmsg_to_cv2(msg, "bgr8")
# 处理...
# OpenCV 转 ROS2 Image
out_msg = bridge.cv2_to_imgmsg(processed_img, "bgr8")
| 问题 | 解决方案 |
|---|---|
| 图像显示中文乱码 | 使用 PIL 渲染中文文字 |
waitKey() 无响应 | 确保 cv2.imshow() 在 waitKey() 之前 |
| 内存泄漏 | 及时 release() 视频捕获对象 |