ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

js 实现 RGB 转 HSV, RGB 转 YUV 色彩空间切换

2019-09-23 14:00:51  阅读:462  来源: 互联网

标签:const max range YUV 60 RGB HSV 255


公式参考

https://docs.opencv.org/2.4/modules/imgproc/doc/miscellaneous_transformations.html#cvtcolor

代码参考

RGB -> HSV

function rgbToHsv([R, G, B, A]) {
  R /= 255
  G /= 255
  B /= 255
  const max = Math.max(R, G, B)
  const min = Math.min(R, G, B)
  const range = max - min
  let V = max
  let S = V === 0 ? 0 : range / V
  let H = 0
  if (R === V) H = (60 * (G - B)) / range
  if (G === V) H = 120 + (60 * (B - R)) / range
  if (B === V) H = 240 + (60 * (R - G)) / range
 
  if (range === 0) H = 0
  if (H < 0) H += 360
  H = (H / 2) * (256 / 180)
  S *= 255
  V *= 255
  return [H, S, V, A]
}

RGB -> YUV

function rgbToYuv([R, G, B, A]) {
  const Y = 0.299 * R + 0.587 * G + 0.114 * B
  const U = -0.147108 * R - 0.288804 * G + 0.435912 * B + 128
  const V = 0.614777 * R - 0.514799 * G - 0.099978 * B + 128
  return [Y, U, V, A]
}

标签:const,max,range,YUV,60,RGB,HSV,255
来源: https://blog.csdn.net/sinat_38077266/article/details/101203090

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有