自己写的一个回调函数无法实现rgb颜色调整,希望附上过程,必给采纳
4条回答 默认 最新
- CSDN专家-HGJ 2022-05-17 14:45关注
在函数nothing的开头定义一下全局变量,加上:
global brush_color, brush_color, drawing
改成这样:import cv2 import numpy as np def nothing(x): global brush_color, brush_color, drawing cv2.imshow('painting', img) r = cv2.getTrackbarPos('r', 'painting') g = cv2.getTrackbarPos('g', 'painting') b = cv2.getTrackbarPos('b', 'painting') brush_color = (b, g, r) brush_size = cv2.getTrackbarPos('brush size', 'painting') def mouse_event(event, x, y, flags, param): ''' ### 鼠标回调函数 ''' global brush_size, brush_color, drawing if event == cv2.EVENT_LBUTTONDOWN: drawing = True elif event == cv2.EVENT_MOUSEMOVE: if drawing: cv2.circle(img, (x, y), brush_size, brush_color, -1) elif event == cv2.EVENT_LBUTTONUP: drawing = False cv2.circle(img, (x, y), brush_size, brush_color, -1) img = np.zeros((300, 512, 3), np.uint8) img[:] = (255, 255, 255) # 定义画板为白色 cv2.namedWindow('painting') # 定义默认的笔刷尺寸和颜色 brush_size, brush_color = 8, (0, 0, 0) drawing = False # 创建rgb三个滑动条 cv2.createTrackbar('r', 'painting', 0, 255, nothing) cv2.createTrackbar('g', 'painting', 0, 255, nothing) cv2.createTrackbar('b', 'painting', 0, 255, nothing) # 创建笔刷大小滑动条 cv2.createTrackbar('brush size', 'painting', 8, 15, nothing) # 定义鼠标回调函数 cv2.setMouseCallback('painting', mouse_event) cv2.waitKey() cv2.destroyAllWindows()
如有帮助,请点采纳。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥30 eclipse开启服务后,网页无法打开
- ¥30 雷达辐射源信号参考模型
- ¥15 html+css+js如何实现这样子的效果?
- ¥15 STM32单片机自主设计
- ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
- ¥15 不小心不正规的开发公司导致不给我们y码,
- ¥15 我的代码无法在vc++中运行呀,错误很多
- ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
- ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
- ¥30 ppOCRLabel导出识别结果失败