当前位置: 首页 > news >正文

百度网站降级的原因龙岗网站建设公司哪家好

百度网站降级的原因,龙岗网站建设公司哪家好,教育直播平台搭建,哈尔滨制作手机网站将sRGB格式的图片转换为BT.2020格式涉及到两个步骤:首先将sRGB转换到线性RGB,然后将线性RGB转换到BT.2020。这是因为sRGB图像通常使用伽马校正,而BT.2020工作在线性色彩空间中。 从sRGB到线性RGB:sRGB图像首先需要进行伽马校正解码…

将sRGB格式的图片转换为BT.2020格式涉及到两个步骤:首先将sRGB转换到线性RGB,然后将线性RGB转换到BT.2020。这是因为sRGB图像通常使用伽马校正,而BT.2020工作在线性色彩空间中。

  1. 从sRGB到线性RGB:sRGB图像首先需要进行伽马校正解码转换为线性RGB。这个过程通常不是通过一个简单的线性矩阵实现的,而是通过以下公式:

    [
    C_{linear} = \begin{cases}
    \frac{C_{sRGB}}{12.92}, & \text{if } C_{sRGB} \leq 0.04045 \
    \left(\frac{C_{sRGB} + 0.055}{1.055}\right)^{2.4}, & \text{otherwise}
    \end{cases}
    ]

    其中 (C_{linear}) 是线性RGB中的颜色分量值(红、绿、蓝),(C_{sRGB}) 是sRGB颜色空间中的对应分量值。

  2. 从线性RGB到BT.2020:接下来,您可以应用一个3x3的线性转换矩阵将线性RGB转换为BT.2020色彩空间。这个矩阵通常如下所示:

    [
    \begin{bmatrix}
    R_{BT.2020} \
    G_{BT.2020} \
    B_{BT.2020}
    \end{bmatrix}

    \begin{bmatrix}
    0.6274 & 0.3293 & 0.0433 \
    0.0691 & 0.9195 & 0.0114 \
    0.0164 & 0.0880 & 0.8956
    \end{bmatrix}
    \cdot
    \begin{bmatrix}
    R_{linear} \
    G_{linear} \
    B_{linear}
    \end{bmatrix}
    ]

在实际应用中,你首先需要编写代码将sRGB图像转换为线性RGB,然后再应用上述矩阵进行色彩空间的转换。以下是使用OpenCV在C++中实现这一过程的示例代码:
在这里插入图片描述

#include <opencv2/opencv.hpp>
#include <cmath>cv::Mat sRGBToLinearRGB(const cv::Mat& srgbImage) {cv::Mat linearRGB(srgbImage.size(), srgbImage.type());// cv::Vec3b,static_cast<uchar> 这2个要根据图片格式选择合适的值srgbImage.forEach<cv::Vec3b>([&](cv::Vec3b &pixel, const int * position) -> void {for (int i = 0; i < 3; ++i) {float c = pixel[i] / 255.0f;c = c <= 0.04045f ? c / 12.92f : std::pow((c + 0.055f) / 1.055f, 2.4f);linearRGB.at<cv::Vec3b>(position)[i] = static_cast<uchar>(std::round(c * 255.0f));}});return linearRGB;
}int main() {// 假设你已经有了一个sRGB格式的cv::Mat对象 srgbImagecv::Mat srgbImage; // 加载你的sRGB图像// 将sRGB转换为线性RGBcv::Mat linearRGB = sRGBToLinearRGB(srgbImage);// 定义从线性RGB到BT.2020的转换矩阵cv::Matx33f transformMatrix(0.6274, 0.3293, 0.0433,0.0691, 0.9195, 0.0114,0.0164, 0.0880, 0.8956);// 应用转换矩阵cv::Mat bt2020Image;cv::transform(linearRGB, bt2020Image, transformMatrix);// bt2020Image现在包含转换后的图像return 0;
}
 cv::Mat sRGBToLinearRGB(const cv::Mat& srgbImage) {cv::Mat linearRGB(srgbImage.size(), srgbImage.type());srgbImage.forEach<cv::Vec3f>([&](cv::Vec3f &pixel, const int * position) -> void {for (int i = 0; i < 3; ++i) {float c = pixel[i] / 255.0f;auto c2 = (c <= 0.04045f) ? (c / 12.92f) : std::pow((c + 0.055f) / 1.055f, 2.4f);auto val = static_cast<float>(std::round(c2 * 255.0f));qDebug() << QString("pixel[i] = %1, c1 = %2, c2 = %3, val = %4").arg(pixel[i]).arg(c).arg(c2).arg(val);linearRGB.at<cv::Vec3f>(position)[i] = val;}});return linearRGB;}cv::Mat Image_sRGB_BT2020(const cv::Mat &src){cv::Mat dst = src;// 确保使用浮点数src.convertTo(dst, CV_32F);// 将sRGB转换为线性RGBcv::Mat linearRGB = sRGBToLinearRGB(dst);// 定义从线性RGB到BT.2020的转换矩阵cv::Matx33f transformMatrix(0.6274, 0.3293, 0.0433,0.0691, 0.9195, 0.0114,0.0164, 0.0880, 0.8956);// 应用转换矩阵cv::Mat bt2020Image;cv::transform(linearRGB, bt2020Image, transformMatrix);return bt2020Image;}
http://www.yayakq.cn/news/225300/

相关文章:

  • 唐河网站建设友情链接交换形式有哪些
  • 唯美网站模板网站登录页面制作
  • 做宣传语的网站万能素材库视频
  • 网站开发方法 优帮云电子商务网站开发过程论文
  • 网站怎么申请微博登录WordPress偷模板
  • 怎么做美食的视频网站jquery 单击input输入框弹出选择框多用于人才类网站
  • 网站某个链接失效西宁高端网站制作
  • 网站建设的销售渠道南宁工程建设网站有哪些
  • 2017做网站还赚钱吗上海环球金融中心大厦简介
  • 网站权重查询工具工信部网站备案规定
  • 手机网站开发成为小程序网站建站备案
  • 携程网站建设目的什么是网络设计方案
  • 企业网站建设的几种形式网站建设毕设
  • 图书馆网站建设工作总结数字化营销与传统营销的区别
  • dw响应式网站模板微信网站的好处
  • 电子商务网站建设的结论免费开网店免费供货
  • 成都专业的整站优化北京公司网站设计电话
  • 网站统计 中文域名广告设计公司vi设计
  • 新网站怎么做网络推广软件开发外包交易平台
  • php图片网站源码app制作免费
  • 关于申请网站建设维护经费吉安做网站
  • vi设计网站大全免费咨询律师软件
  • 给非法公司做网站维护中国电子商务研究中心官网
  • 环保网站 下载中国联合网络通信有限公司
  • 网站建设贰金手指科杰2较好的网站建设公司
  • 手工活接单在家做有正规网站吗中国联通网站建设与维护
  • 网站用的什么字体正规网站建设咨询电话
  • 凭祥网站建设dw网页制作在线编辑
  • 做百度推广去些网站加客户网站系统升级维护需要多长时间
  • 湖北建设信息网站网站建设捌金手指花总二九