什么是LTU?

一、简介版

  简言之,LUT实际上就是查找表,Look-Up Table,就是一个预定义好的表格。在图像处理中主要用来调整和变换图像的颜色、亮度、对比度等特性。所以它的核心思想是通过预先定义一个查找表,将输入的像素值快速映射为对应的输出像素值,进而实现高效的图像处理。

二、详细了解版

  LUT通常分为1D和3D。1D意味着只有一个输入和一个输出,比如一个像素点的红色值是200,查找表中记录它对应的输出值为100,那么就意味着这个像素点经过查找表映射后,红色值变为了100。而3D查找表对应的有RGB三个输入,对应RGB三个输出。其本质就是把一种颜色的效果转化为另一种颜色效果。或者是灰度值转化为另一种灰度值,比如说一个像素有红绿蓝三个通道,每个通道8位像素表示,那么这个像素就有255255255中颜色映射方式。
  总结就是,1D LUT只能控制gamma值、RGB平衡(灰阶)和白场(white point)。而3D LUT能以全立体色彩空间的控制方式影响色相、饱和度、亮度等。简单描述来说3D LUT可以影响到颜色,而1D LUT只能影响亮度值。

1D 查找表

  1D LUT 是最简单的形式,它仅处理图像的单个通道,比如亮度或者每个颜色通道(红、绿、蓝)。在一张彩色图像中,每个颜色通道的值通常介于 0 到 255 之间(假设 8 位图像)。1D LUT 为每个输入值(0 到 255)定义一个输出值,表示你希望如何调整颜色或亮度。例如,假如你想增加图像的亮度,你可以通过1D LUT为每个输入亮度值分配一个更高的输出值。

  • 应用场景:调整对比度、亮度、Gamma校正等。

1D LUT 操作过程:

  • 输入值(0-255)经过查找表,映射到新的输出值。
  • 通常,图像的每个通道都可以应用一个1D LUT。

3D 查找表

  3D LUT 比 1D LUT 更复杂,它处理的是颜色的三维空间(即红色、绿色和蓝色通道)。在3D LUT中,每个颜色组合(R, G, B)都会有一个新的颜色输出。通过这个方式,你可以对图像的颜色进行更精细的控制和校正,比如应用特定的色彩风格、色彩转换等。刚才我们说了,对于8位的彩色图像,每个像素有255255255种映射,这在实际使用中显然不太现实。所以就出现了17,33,65端点的查找表的形式,极大的减少了处理时间。

  • 应用场景:颜色校正、特定的色彩风格变换、电影后期处理等。

3D LUT 操作过程:

  • 输入的每个像素(R, G, B 值)通过查找表映射到新的(R’, G’, B’)颜色值。
  • 这让你能够改变图像的颜色风格,而不仅仅是调整亮度或对比度。

可以使用下面的代码可视化一下一维和三维的区别:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 1D LUT示意图 (美化版本)
def plot_1d_lut():
    fig, ax = plt.subplots(figsize=(6, 4))

    # 假设一个简单的1D LUT,将输入的0-255范围线性映射为0-255
    x = np.arange(0, 256)
    y = np.clip(x * 1.2, 0, 255)  # 增加亮度的 LUT (输出=输入*1.2)

    # 绘制带有平滑曲线的图
    ax.plot(x, y, color="#FF5733", linewidth=2, label="LUT Mapping")

    # 设置网格、标签、标题等
    ax.set_title("1D LUT (Brightness Adjustment)", fontsize=14, fontweight='bold')
    ax.set_xlabel("Input Value", fontsize=12)
    ax.set_ylabel("Output Value", fontsize=12)
    ax.legend(loc="upper left", fontsize=10)
    ax.grid(True, linestyle='--', alpha=0.7)

    # 美化图形
    ax.spines['top'].set_visible(False)
    ax.spines['right'].set_visible(False)

    # 保存图像
    fig.savefig('1d_lut_beautified.png', bbox_inches='tight', dpi=150)
    plt.close(fig)

# 3D LUT示意图 (美化版本)
def plot_3d_lut():
    fig = plt.figure(figsize=(8, 6))
    ax = fig.add_subplot(111, projection='3d')

    # 创建一个RGB立方体作为3D LUT输入
    r = np.linspace(0, 1, 8)
    g = np.linspace(0, 1, 8)
    b = np.linspace(0, 1, 8)

    # 将每个颜色分量组合成一个3D网格
    R, G, B = np.meshgrid(r, g, b)
    R_flat = R.flatten()
    G_flat = G.flatten()
    B_flat = B.flatten()

    # 假设3D LUT做颜色校正,简单增加每个颜色分量
    R_out = np.clip(R_flat * 0.8, 0, 1)
    G_out = np.clip(G_flat * 1.2, 0, 1)
    B_out = np.clip(B_flat * 1.0, 0, 1)

    # 绘制输入的RGB颜色点
    ax.scatter(R_flat, G_flat, B_flat, color=np.stack([R_flat, G_flat, B_flat], axis=1), 
               label='Input Colors', s=50, alpha=0.6)

    # 绘制输出的RGB颜色点 (带有交叉标记)
    ax.scatter(R_out, G_out, B_out, color=np.stack([R_out, G_out, B_out], axis=1), 
               marker='x', label='Output Colors', s=60, linewidths=2)

    # 设置轴标签和标题
    ax.set_xlabel('Red', fontsize=12, labelpad=10)
    ax.set_ylabel('Green', fontsize=12, labelpad=10)
    ax.set_zlabel('Blue', fontsize=12, labelpad=10)
    ax.set_title("3D LUT (Color Adjustment)", fontsize=14, fontweight='bold')

    # 调整图例和视角
    ax.view_init(30, 120)  # 改变视角,30度仰视,120度旋转
    ax.legend(loc="upper left", fontsize=10)

    # 美化3D散点图
    ax.grid(True, linestyle='--', alpha=0.6)

    # 保存图像
    fig.savefig('3d_lut_beautified.png', bbox_inches='tight', dpi=150)
    plt.close(fig)

# 调用绘图函数并保存美化后的图像
plot_1d_lut()
plot_3d_lut()

print("美化后的 1D LUT 和 3D LUT 图像已保存为 '1d_lut_beautified.png' 和 '3d_lut_beautified.png'")

根据提供的引用内容,FileNotFoundError: [Errno 2] No such file or directory是一个文件未找到或目录不存在的错误。可以看出,这个错误是由于指定的文件路径或目录不存在而引起的。根据引用和引用的信息,可以确定这个错误是由于指定的文件路径'../AutoFrame/temp/report.xlsx' 和'/datasets/outputs/train.idx' 不存在导致的。同样,根据引用的信息,文件路径'../../temp/report_temp.xlsx'也是不存在的。所以,引用中提到的文件路径'F:\\work\\work_code\\LTU\\分析仪\\hht\\线损拓扑\\柏嘉半岛#3#4\\#3\\full_topo_ltu_result.csv'也是一个不存在的文件路径或目录。因此,你需要确保这个文件路径是正确的并且文件或目录确实存在。如果文件路径是正确的,那么可能是文件被移动或删除了。你需要检查文件是否存在,并确保它的路径是正确的。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Python之FileNotFoundError: [Errno 2] No such file or directory问题处理](https://blog.csdn.net/qq_41845402/article/details/128974839)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [FileNotFoundError: [Errno 2] No such file or directory:XXXX](https://blog.csdn.net/weixin_43135178/article/details/128354305)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

I松风水月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值