用Python进行RU计算

一、说明

Relative Uniformity的计算步骤:

  1. RAW转Y进行计算
  2. 按照公式要求进行点位的计算
  3. 然后按照每个半径下值进行结果的判断

下图只是一个示例,

二、上代码

只上部分代码,请理解,有疑问可以沟通

import cv2

import numpy as np

import img_raw

for seq in range(ringNums):

r = (seq + 1.5) * ringSpacing

numSquares = 8 * (seq + 1)

for m in range(numSquares):

tempAngle = 2 * np.pi * m / numSquares

m_x = np.cos(tempAngle)

m_y = np.sin(tempAngle)

temppts_x = int(nImageWidth / 2 + r * m_x - blockSize // 2)

temppts_y = int(nImageHeight / 2 + r * m_y - blockSize // 2)

if 0 <= temppts_x < nImageWidth - blockSize and 0 <= temppts_y < nImageHeight - blockSize:

block = img[temppts_y:temppts_y + blockSize, temppts_x:temppts_x + blockSize]

rings_blockMeanY[seq].append(np.mean(block))

#= 绘制ROI(如果需要)

cv2.rectangle(rgb_image, (temppts_x, temppts_y), (temppts_x + blockSize, temppts_y + blockSize), (0,0,0), 5)

#将RAW10转换为RAW8,用于画图

raw_data_8bit = (img1 / 4).astype(np.uint8)

rgb_image = cv2.cvtColor(raw_data_8bit, cv2.COLOR_BAYER_BG2RGB)

cv2.namedWindow('RU', cv2.WINDOW_NORMAL)

cv2.imshow('RU', rgb_image)

cv2.waitKey(0)

cv2.destroyAllWindows()

相关推荐
进击的小头13 小时前
第16篇:系统的稳定裕度分析
python·算法
m0_7167652313 小时前
C++提高编程--STL初识、string容器详解
java·开发语言·c++·经验分享·学习·青少年编程·visual studio
程序员三藏13 小时前
如何用Selenium实现自动化?
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
楼田莉子13 小时前
高并发内存池项目:内存池性能分析及其优化
开发语言·c++·后端·学习
2301_7938046913 小时前
如何从Python初学者进阶为专家?
jvm·数据库·python
m0_5180194813 小时前
用Python实现自动化的Web测试(Selenium)
jvm·数据库·python
wapicn9913 小时前
智能识别技术在生活服务领域的落地应用与前景展望
java·c++·人工智能·python·php
是翔仔呐13 小时前
第6章 UART串口通信!掌握单片机与外界的双向数据通道,实现跨设备交互
c语言·开发语言·单片机·嵌入式硬件·gitee
带娃的IT创业者13 小时前
从本地开发到 PyPI发布:WeClaw 的 Python 包标准化之旅
开发语言·python
2201_7586426413 小时前
自定义内存检测工具
开发语言·c++·算法