博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
绘制灰度图像_地编开发debug视图,使用opencv2检测图像
阅读量:6361 次
发布时间:2019-06-23

本文共 2289 字,大约阅读时间需要 7 分钟。

641b1ced24b6fafd632d32dc807468d8.png
https://www.zhihu.com/video/1234144525931171840

09a52b3cde7090098b67d5a23c3b2637.png

119464f0d776cf770df56e92ad3733d1.png

直接上图和视频和图吧,UE4里面我是没找到类似这种可以看直方图的,可以看RGB还有照度图,具体作用就是做场景时候有个参考,HDR之前哪里过亮了或者暗了。

使用opencv,还可以再图中绘制出来过亮过暗的区域(我没做,但是思路是检测颜色,默认转HSV然后对超出的RGB进行绘制为否就不绘制,这个判断和思路youtube一抄一大把我就不贴代码了)。

上面括号里说的内容,类似unity的这个,过亮区域会涂一个颜色,这个思路下面补充一下:

19fc231ac724cbcaccfba4fa7ea9593c.png

补充下思路,首先这个rgb是在0-255里的,有一个最低rgb,一个最高rgb,比如红色最低是160-180,用判断,如果高于或者低于就这个颜色x一个数值标记这个mask区域,在opencv很多例子里有。

2020.4.17更新,举例最亮最暗识别区代码,GIF图可能看的不是很清晰:

#亮度的识别区间    light_low = np.array([222,222,222])    light_high = np.array([255,255,255])    lightMask = cv2.inRange(SourceImage,light_low,light_high)    lightOut = cv2.bitwise_and(SourceImage,SourceImage,mask=lightMask)    res = cv2.addWeighted(src1=SourceImage,alpha=1,src2=lightOut,beta=2,gamma=0.22)

36be2660a12c190a9175b3a790f630c5.gif

927c8c606c55d1503254cb1cf88d81c4.gif

最开始的RGB 灰度histogram直接给代码:

import numpy as npfrom PIL import ImageGrabimport cv2import matplotlib.pyplot as plt#1.2参数用来调整从屏幕左上角的xy偏移值CaptureSize=(345,75,1495,755)#绘制RGBdef calcAndDrawHist(image, color):      hist= cv2.calcHist([image], [0], None, [256], [0.0,255.0])      minVal, maxVal, minLoc, maxLoc = cv2.minMaxLoc(hist)      histImg = np.zeros([256,256,3], np.uint8)      hpt = int(0.9* 256);            for h in range(256):          intensity = int(hist[h]*hpt/maxVal)          cv2.line(histImg,(h,256), (h,256-intensity), color)      return histImgwhile True:    #捕获原始图像    screen=np.asarray(ImageGrab.grab(bbox=CaptureSize))    #对原始图像颜色空间转换    screen = cv2.cvtColor(screen,cv2.COLOR_BGR2RGB)    #写入文件与显示图像    cv2.imwrite("ImageCache.jpg",screen,[int(cv2.IMWRITE_JPEG_QUALITY), 100])    cv2.imshow("ImageHistogram",screen)        #复制原始图像    original_img = cv2.imread("ImageCache.jpg")    #设置图像的尺寸与cv插值    img = cv2.resize(original_img,None,fx=0.6,fy=0.6,interpolation = cv2.INTER_CUBIC)    #分离通道,进行绘制    b, g, r = cv2.split(img)     #灰度图    gray = cv2.imread("ImageCache.jpg",cv2.IMREAD_GRAYSCALE)    histImgB = calcAndDrawHist(b, [255, 0, 0])      histImgG = calcAndDrawHist(g, [0, 255, 0])      histImgR = calcAndDrawHist(r, [0, 0, 255])     histImgLM = calcAndDrawHist(gray, [128, 128, 128])       #绘制直方图    cv2.imshow("R Channel", histImgR)      cv2.imshow("G Channel", histImgG)      cv2.imshow("B Channel", histImgB)    cv2.imshow("Gray Channel", histImgLM)    if cv2.waitKey(25)==ord("q"):        cv2.destroyAllWindows()        break

5月3号更新:

反正就看评论吧。。。。 这个就当瞎折腾玩好了。。。

转载地址:http://rzima.baihongyu.com/

你可能感兴趣的文章
《音乐达人秀:Adobe Audition实战200例》——实例4 收音机音乐节目转录到电脑里...
查看>>
《JavaScript应用程序设计》一一3.1 过时的类继承
查看>>
Amazon 推出 API 网关使用计划
查看>>
《基于ArcGIS的Python编程秘笈(第2版)》——2.5 限制图层列表
查看>>
GNOME 地图 3.20 加入更多新特性 可用性得到加强
查看>>
《代码整洁之道:程序员的职业素养》导读
查看>>
《计算复杂性:现代方法》——习题
查看>>
Mozilla 释出更新修复中间人攻击漏洞
查看>>
《慕客网:IOS基础入门之Foundation框架初体验》学习笔记 <一>
查看>>
Spring声明式事务管理之二:核心接口API
查看>>
LNMP环境安装(二)
查看>>
MFC对话框编程-图片控件
查看>>
nodejs启动webserver服务
查看>>
小偷被抓叫嚣:我不偷警察没饭吃
查看>>
python初学—-实现excel里面读数据进行排序
查看>>
用户体验升级后 “谁行谁上”让百度Q4财报更有底气
查看>>
直播相关学习链接
查看>>
使用RPM包工具和源码包编译安装Linux应用程序
查看>>
VoIP——开启免费通话新时代的先锋
查看>>
Linux下rsync的用法
查看>>