java rgb yuv_RGB,CMY(K),YUV,YIQ,YCbCr顏色的轉換算法(java實現)
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實現)相关推荐
- java rgb转yuv_RGB,CMY(K),YUV,YIQ,YCbCr颜色的转换算法(java实现)
import java.lang.Math; import java.awt.*; public class ColorConverter{ public ColorConverter(){ } // ...
- java rgb yuv_RGB和YUV简单学习记录
RGB和YUV是一种颜色编码格式. 这里简单介绍一下RGB.YUV和HSV. 出处:一文读懂 YUV 的采样与格式 https://glumes.com/post/ffmpeg/understand- ...
- Leetcode算法Java全解答--16. 最接近的三数之和
Leetcode算法Java全解答–16. 最接近的三数之和 文章目录 Leetcode算法Java全解答--16. 最接近的三数之和 题目 想法 结果 总结 代码 我的答案 暴力破解 滑动列表 大佬 ...
- RGB與CIELAB色彩空間轉換
原地址:http://cg2010studio.wordpress.com/2012/10/02/rgb與cielab色彩空間轉換/ 之前有研究CIE L*a*b*色彩空間,現在想更進一步探討RGB色 ...
- RGB、YUV和YCbCr三种颜色空间
转载自:https://blog.csdn.net/u010186001/article/details/52800250 [转载] http://blog.sina.com.cn/s/blog_a8 ...
- RGB、YUV和YCbCr
之前对RGB.YUV和YCbCr一直没有清晰的理解和认识,今天打算做一个小结,结合网上的文章谈谈自己的看法,也希望有机会看到这篇文章的人能指点一二,相互交流,共同进步. 首先要说明,上述的RGB.YU ...
- RGB、YUV、YCbCr几种颜色空间的区别
首先要说明RGB.YUV和YCbCr都是人为规定的彩色模型或颜色空间(有时也叫彩色系统或彩色空间).它的用途是在某些标准下用通常可接受的方式对彩色加以描述.本质上,彩色模型是坐标系统和子空间的阐述. ...
- c语言yuv图片cb,RGB、YUV和YCbCr
之前对RGB.YUV和YCbCr一直没有清晰的理解和认识,今天打算做一个小结,结合网上的文章谈谈自己的看法,也希望有机会看到这篇文章的人能指点一二,相互交流,共同进步. 首先要说明,上述的RGB.YU ...
- FPGA-图像处理-色彩空间转换(RGB转YUV和YCBCR)
之前转了一篇定点运算的文章希望大家看完再看这个, 涉及到FPGA的色彩空间转换的知识,一定要提定点运算,其实之前在进行小数运算的时候已经用到了,这里我也不详细说了看文章吧 OV7670摄像头采集的数据 ...
- MATLAB中颜色模型介绍级各模型之间转换(RGB、HSV、NTSC、YCbCr、HSI)
1.颜色模型定义 2.各颜色模型简介 3.颜色模型的转换 一.颜色模型定义 颜色模型:某个三维颜色空间中的一个可见光子集,它包含某个颜色域的所有颜色.例如,RGB颜色模型就是三维直角坐标颜色系统的一个 ...
最新文章
- suse linux 10 下安装sybase15.0.3,SUSE10下安装sybase ASE15.0
- 那些在一个公司死磕5-10年的人,最后都怎么样了...
- 每日一练:Python代码绘制航海王草帽路飞,打饭阿姨也能跟着学会的Turtle海龟绘图系列
- Leetcode1685. 有序数组中差绝对值之和[C++题解]:前缀和和差的绝对值之和
- 软考考前冲刺第九,十章多媒体基础知识知识产权基础知识
- 正几边形可以实现无缝拼接?
- Blob和Clob的区别和用法
- mariadb数据库文件的组成
- 【优化算法】蚱蜢优化算法(GOA)【含Matlab源码 1070期】
- bugzilla发送邮件慢的问题
- 百度之星 度度熊的午饭时光
- 不要为优势忘乎所以——职场人士寓言(6)
- 巨准SCRM私域案例拆解丨看看WonderLab如何霸屏朋友圈
- 指尖菜谱App从0到1-项目开发准备
- Linux网络编程8——线程池模型
- 图片转icon图标并在项目中引用
- 关于网络游戏《诛仙》中9级铁玉赠送任务的思考
- 华为无线设备配置Mesh业务
- 第4天:C语言与画面显示的练习
- npm的插件如何直接在html中使用,webpack中html-webpack-plugin插件的使用(生成多个html页面,引入不一样的js文件)...
热门文章
- ButterKnife被弃用,ViewBinding才是findView的未来?
- 印章仿制工具_仿制图章工具怎么用
- GitHub+JenKins集成Python自动化测试脚本
- 【Python】turtle安装报错ERROR: Command errored out with exit status 1
- 报价单与贸易术语关系
- uWSGI, Gunincorn, 啥玩意儿?
- 今天在XP下装SQL2000个人版MB用了两个钟
- HTML5游子吟网页的完整代码,《游子吟》教学设计(5页)-原创力文档
- 三星a60android9,三星A6060官方港版安卓9固件rom线刷包:TGY-A6060ZHU1ASH3
- 004-CentOS换清华源