import java.lang.Math;

import java.awt.*;

public class ColorConverter{

public ColorConverter(){

}

//RGB轉換CMYk

public int[] rgb2cmyk(int R,int G,int B){

int cmyk []= new int[4];

cmyk[3]=(int)(Math.min(Math.min(255-R,255-G),255-B)/2.55);//cmykK

int MyR = (int)(R/2.55);

int Div = 100-cmyk[3];

if (Div == 0)Div = 1;

cmyk[0] = ((100-MyR-cmyk[3])/Div)*100;//cmykC

int MyG = (int)(G/2.55);

cmyk[1] = ((100-MyG-cmyk[3])/Div)*100;

int MyB = (int)(B/2.55);

cmyk[2] = ((100-MyB-cmyk[3])/Div)*100;

return cmyk;

}

public Color cmyk2rgb(int C,int M,int Y,int K){

float MyC = C/100;

float MyM = M/100;

float MyY = Y/100;

float MyK = K/100;

int R = (int)((1-(MyC*(1-MyK)+MyK))*255);

int G = (int)((1-(MyM*(1-MyK)+MyK))*255);

int B = (int)((1-(MyY*(1-MyK)+MyK))*255);

if (R<0) R=0;

if (G<0) G=0;

if (B<0) B=0;

if (R>255) R=255;

if (G>255) G=255;

if (B>255) B=255;

Color rgb = new Color(R,G,B);

return rgb;

}

public int[] rgb2yuv(int R,int G,int B){

int yuv[] = new int[3];

yuv[0] =(int)(0.299*R+0.587*G+0.114*B);

yuv[1] = (int)(-0.147*R-0.289*G+0.437*B);

yuv[2] = (int)(0.615*R-0.515*G-0.1*B);

return yuv;

}

public Color yuv2rgb(int y,int u,int v){

int R = (int)(y+1.14*v);

int G = (int)(y-0.394*u-0.581*v);

int B = (int)(y+2.028*u);

if (R<0) R=0;

if (G<0) G=0;

if (B<0) B=0;

if (R>255) R=255;

if (G>255) G=255;

if (B>255) B=255;

Color rgb=new Color(R,G,B);

return rgb;

}

public int[] rgb2yiq(int R,int G,int B){

int yiq[] = new int[3];

yiq[0] = (int)(0.299*R+0.587*G+0.114*B);

yiq[1] = (int)(0.596*R-0.274*G-0.322*B);

yiq[2] = (int)(0.212*R-0.523*G+0.311*B);

return yiq;

}

public Color yiq2rgb(float y,float i,float q){

int R = (int)(y+0.956*i+0.621*q);

int G = (int)(y-0.272*i-0.647*q);

int B = (int)(y-1.105*i+1.702*q);

if (R<0) R=0;

if (G<0) G=0;

if (B<0) B=0;

if (R>255) R=255;

if (G>255) G=255;

if (B>255) B=255;

Color rgb = new Color(R,G,B);

return rgb;

}

//RGB轉換YCbCr

public int[] rgb2ycbcr(int R, int G,int B){

int ycbcr[] = new int[3];

ycbcr[0] = (int)(0.299*R+0.587*G+0.114*B);

ycbcr[1] = (int)(-0.1687*R-0.3313*G+0.5*B+128);

if (ycbcr[1] > 255) ycbcr[1] = 255;

ycbcr[2] = (int)(0.5*R-0.4187*G-0.0813*B+128);

if (ycbcr[2] > 255) ycbcr[2] = 255;

return ycbcr;

}

public Color ycbcr2rgb(int Y,int Cb,int Cr){

int MyR = (int)(Y + 1.402 * (Cr -128));

int MyG = (int)(Y - 0.34414 * (Cb - 128) - 0.71414 * (Cr - 128));

int MyB = (int)(Y + 1.772 * (Cb -128));

if (MyR > 255) MyR = 255;

if (MyG > 255) MyG = 255;

if (MyB > 255) MyB = 255;

if (MyR < 0) MyR =0;

if (MyG < 0) MyG =0;

if (MyB < 0) MyB =0;

Color rgb = new Color(MyR,MyG,MyB);

return rgb;

}

}

java rgb yuv_RGB,CMY(K),YUV,YIQ,YCbCr顏色的轉換算法(java實現)相关推荐

  1. java rgb转yuv_RGB,CMY(K),YUV,YIQ,YCbCr颜色的转换算法(java实现)

    import java.lang.Math; import java.awt.*; public class ColorConverter{ public ColorConverter(){ } // ...

  2. java rgb yuv_RGB和YUV简单学习记录

    RGB和YUV是一种颜色编码格式. 这里简单介绍一下RGB.YUV和HSV. 出处:一文读懂 YUV 的采样与格式 https://glumes.com/post/ffmpeg/understand- ...

  3. Leetcode算法Java全解答--16. 最接近的三数之和

    Leetcode算法Java全解答–16. 最接近的三数之和 文章目录 Leetcode算法Java全解答--16. 最接近的三数之和 题目 想法 结果 总结 代码 我的答案 暴力破解 滑动列表 大佬 ...

  4. RGB與CIELAB色彩空間轉換

    原地址:http://cg2010studio.wordpress.com/2012/10/02/rgb與cielab色彩空間轉換/ 之前有研究CIE L*a*b*色彩空間,現在想更進一步探討RGB色 ...

  5. RGB、YUV和YCbCr三种颜色空间

    转载自:https://blog.csdn.net/u010186001/article/details/52800250 [转载] http://blog.sina.com.cn/s/blog_a8 ...

  6. RGB、YUV和YCbCr

    之前对RGB.YUV和YCbCr一直没有清晰的理解和认识,今天打算做一个小结,结合网上的文章谈谈自己的看法,也希望有机会看到这篇文章的人能指点一二,相互交流,共同进步. 首先要说明,上述的RGB.YU ...

  7. RGB、YUV、YCbCr几种颜色空间的区别

    首先要说明RGB.YUV和YCbCr都是人为规定的彩色模型或颜色空间(有时也叫彩色系统或彩色空间).它的用途是在某些标准下用通常可接受的方式对彩色加以描述.本质上,彩色模型是坐标系统和子空间的阐述. ...

  8. c语言yuv图片cb,RGB、YUV和YCbCr

    之前对RGB.YUV和YCbCr一直没有清晰的理解和认识,今天打算做一个小结,结合网上的文章谈谈自己的看法,也希望有机会看到这篇文章的人能指点一二,相互交流,共同进步. 首先要说明,上述的RGB.YU ...

  9. FPGA-图像处理-色彩空间转换(RGB转YUV和YCBCR)

    之前转了一篇定点运算的文章希望大家看完再看这个, 涉及到FPGA的色彩空间转换的知识,一定要提定点运算,其实之前在进行小数运算的时候已经用到了,这里我也不详细说了看文章吧 OV7670摄像头采集的数据 ...

  10. MATLAB中颜色模型介绍级各模型之间转换(RGB、HSV、NTSC、YCbCr、HSI)

    1.颜色模型定义 2.各颜色模型简介 3.颜色模型的转换 一.颜色模型定义 颜色模型:某个三维颜色空间中的一个可见光子集,它包含某个颜色域的所有颜色.例如,RGB颜色模型就是三维直角坐标颜色系统的一个 ...

最新文章

  1. suse linux 10 下安装sybase15.0.3,SUSE10下安装sybase ASE15.0
  2. 那些在一个公司死磕5-10年的人,最后都怎么样了...
  3. 每日一练:Python代码绘制航海王草帽路飞,打饭阿姨也能跟着学会的Turtle海龟绘图系列
  4. Leetcode1685. 有序数组中差绝对值之和[C++题解]:前缀和和差的绝对值之和
  5. 软考考前冲刺第九,十章多媒体基础知识知识产权基础知识
  6. 正几边形可以实现无缝拼接?
  7. Blob和Clob的区别和用法
  8. mariadb数据库文件的组成
  9. 【优化算法】蚱蜢优化算法(GOA)【含Matlab源码 1070期】
  10. bugzilla发送邮件慢的问题
  11. 百度之星 度度熊的午饭时光
  12. 不要为优势忘乎所以——职场人士寓言(6)
  13. 巨准SCRM私域案例拆解丨看看WonderLab如何霸屏朋友圈
  14. 指尖菜谱App从0到1-项目开发准备
  15. Linux网络编程8——线程池模型
  16. 图片转icon图标并在项目中引用
  17. 关于网络游戏《诛仙》中9级铁玉赠送任务的思考
  18. 华为无线设备配置Mesh业务
  19. 第4天:C语言与画面显示的练习
  20. npm的插件如何直接在html中使用,webpack中html-webpack-plugin插件的使用(生成多个html页面,引入不一样的js文件)...

热门文章

  1. ButterKnife被弃用,ViewBinding才是findView的未来?
  2. 印章仿制工具_仿制图章工具怎么用
  3. GitHub+JenKins集成Python自动化测试脚本
  4. 【Python】turtle安装报错ERROR: Command errored out with exit status 1
  5. 报价单与贸易术语关系
  6. uWSGI, Gunincorn, 啥玩意儿?
  7. 今天在XP下装SQL2000个人版MB用了两个钟
  8. HTML5游子吟网页的完整代码,《游子吟》教学设计(5页)-原创力文档
  9. 三星a60android9,三星A6060官方港版安卓9固件rom线刷包:TGY-A6060ZHU1ASH3
  10. 004-CentOS换清华源