用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()

相关推荐
初心未改HD几秒前
Go语言Slice切片底层原理深度解析
开发语言·golang
TechWayfarer4 分钟前
离线IP数据库内网部署:场景选型与热更新落地实践
网络·数据库·python·网络协议·tcp/ip
WL_Aurora5 分钟前
备战蓝桥杯国赛【day1】
python·蓝桥杯
程序员三明治7 分钟前
【AI】Java 调用大模型 API 实战:从 OpenAI 协议到 SiliconFlow 流式响应解析
java·开发语言·人工智能
szccyw07 分钟前
如何防止 Laravel 中因动态列名导致的 SQL 注入风险
jvm·数据库·python
zhangchaoxies8 分钟前
团队版Navicat专属功能:如何共享数据库架构ER模型_核心机制解析
jvm·数据库·python
世界尽头与你8 分钟前
Go 语言高级函数特性
开发语言·golang
小小de风呀13 分钟前
de风——【从零开始学C++】(三):类和对象(中序):默认成员函数全解析
开发语言·c++
凤头百灵鸟17 分钟前
Python语法进阶篇 --- 单例模式、魔法方法
javascript·python·单例模式
老歌老听老掉牙17 分钟前
Python 模块深度解析:从创建、导入到属性机制
python·模块