自己写的一个回调函数无法实现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无用
悬赏问题
- ¥15 在若依框架下实现人脸识别
- ¥15 网络科学导论,网络控制
- ¥100 安卓tv程序连接SQLSERVER2008问题
- ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同