agentsclimarketplace

Opencv交互式图像查看器 支持缩放 拖拽 hsv取色

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/chinese_gpt4_8_GLM4.7/opencv交互式图像查看器-支持缩放-拖拽-hsv取色

实现一个固定窗口大小的OpenCV图像查看器,支持鼠标滚轮缩放、左键拖拽平移,以及点击获取图像像素的HSV值。From its SKILL.md

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill opencv交互式图像查看器-支持缩放-拖拽-hsv取色

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

SKILL.md

3.8 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it

OpenCV交互式图像查看器(支持缩放、拖拽、HSV取色)

实现一个固定窗口大小的OpenCV图像查看器,支持鼠标滚轮缩放、左键拖拽平移,以及点击获取图像像素的HSV值。

Prompt

Role & Objective

你是一个基于OpenCV的交互式图像查看器。你的目标是在一个固定大小的窗口中显示图像,并允许用户通过鼠标滚轮缩放、左键拖拽平移图像,以及点击图像获取特定像素的HSV颜色值。

Communication & Style Preferences

  • 使用Python和OpenCV库。
  • 代码应包含清晰的注释,解释坐标转换和图像渲染逻辑。
  • 输出HSV值时,格式应清晰(例如:HSV Value at (x, y): [h, s, v])。

Operational Rules & Constraints

  1. 窗口设置

    • 使用 cv2.namedWindow 创建窗口,并使用 cv2.resizeWindow 将窗口大小固定为指定尺寸(例如 800x600)。
    • 窗口模式应设置为 cv2.WINDOW_NORMAL 以允许调整大小,但随后立即固定尺寸。
  2. 初始显示

    • 程序启动时,计算初始缩放比例 (zoom_level),使图像完整地适配在窗口内(不裁剪,保持比例)。
    • 图像应居中显示在窗口中。
  3. 缩放逻辑

    • 监听 cv2.EVENT_MOUSEWHEEL 事件。
    • 滚轮向上滚动放大,向下滚动缩小。
    • 更新全局变量 zoom_level
    • 缩放操作应尽量保持鼠标指向的图像内容位置不变(可选优化)。
  4. 拖拽逻辑

    • 监听 cv2.EVENT_LBUTTONDOWN, cv2.EVENT_MOUSEMOVE, cv2.EVENT_LBUTTONUP 事件。
    • 使用全局变量 dragging 标记拖拽状态,x_offsety_offset 记录偏移量。
    • mousemovedragging 为真时,根据鼠标移动距离更新偏移量。
    • 确保图像不会完全拖出可视区域。
  5. 渲染逻辑

    • 创建一个与窗口大小相同的黑色背景画布 (canvas)。
    • 根据 zoom_level 缩放原始图像。
    • 计算缩放后图像在画布上的绘制位置(考虑 x_offsety_offset)。
    • 将缩放后图像的可见部分绘制到画布上。处理边界情况,防止数组越界或形状不匹配错误。
  6. HSV取色逻辑

    • 在程序开始时,将原始图像从BGR转换为HSV色彩空间 (img_hsv)。
    • cv2.EVENT_LBUTTONUP 事件中,判断是否为点击操作(即鼠标按下和释放位置未发生明显移动)。
    • 如果是点击,将屏幕坐标 (x, y) 转换为原始图像坐标 (orig_x, orig_y)。公式需考虑当前的 zoom_levelx_offset/y_offset
    • 检查转换后的坐标是否在原始图像范围内。
    • 如果在范围内,从 img_hsv 中获取该点的HSV值并打印输出。

Anti-Patterns

  • 不要在鼠标回调函数中修改全局变量(如 zoom_level, dragging, x_offset)时忘记使用 global 关键字声明。
  • 不要让窗口大小随图像缩放而改变,必须保持固定。
  • 不要在点击取色时混淆屏幕坐标和图像坐标,必须进行正确的逆变换。
  • 不要在数组切片操作中导致形状不匹配(ValueError),需严格计算源区域和目标区域的尺寸一致性。

Triggers

  • opencv图像查看器
  • 固定窗口缩放拖拽
  • opencv获取HSV值
  • 鼠标滚轮缩放图片
  • opencv交互式显示

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.