谁能给一份比较好的RGB和CMYK互相转换的算法?

最好是对CMYK低分辨率支持的比较好的,因为我这里要求是CMYK每种颜色都量化成8个色阶。
下面是我的代码,RGB转成CMYK后再转回来失真严重。

void CMy3View::RGB2CMYK(int red, int green, int blue, int &C, int &M, int &Y, int &K) //RGB转CMYK
{
double c,m,y,k;
c = (double)(255 - red) / 255;
m = (double)(255 - green) / 255;
y = (double)(255 - blue) / 255;

if(c<=m&&c<=y)  //k赋值为c,m,y的最小值
    k=c;
else if(m<=c&&m<=y)
    k=m;
else
    k=y;

if(1.0 == k)
   c = m = y = 0;
else{
    c = (c - k) / (1 - k);
    m = (m - k) / (1 - k);
    y = (y - k) / (1 - k);
}
C=(int)8.0*c;    //不要问我为什么这里要乘8,要求就是CMYK只有8个色阶,必须得
M=(int)8.0*m;  //这么做
Y=(int)8.0*y;
K=(int)8.0*k;

}

void CMy3View::CMYK2RGB(int c, int m, int y, int k, int &r, int &g, int &b) //CMYK转RGB
{
r =(int)(1.0-c/8.0)*(1.0-k/8.0)*255.0 +0.5;
g =(int)(1.0 - m/8.0) * (1.0 - k/8.0) * 255.0+0.5;
b =(int)(1.0 - y/8.0) * (1.0 - k/8.0) * 255.0+0.5;
}

0

2个回答

我没有看你算法是怎么具体实现的,可以参考opencv的实现;cvtcolor
http://www.opencv.org.cn/opencvdoc/2.3.2/html/modules/imgproc/doc/miscellaneous_transformations.html?highlight=cvtcolor#cv2.cvtColor

0
baidu_25665887
baidu_25665887 这里面没提RGB转CMYK怎么实现啊。我还想再问一下,CIE XYZ和CIE Lab这两个颜色空间要怎么才能映射到CMYK?
4 年多之前 回复
baidu_25665887
baidu_25665887 这里面没提RGB转CMYK怎么实现啊。我还想再问一下,CIE XYZ和CIE Lab这两个颜色空间要怎么才能映射到CMYK?
4 年多之前 回复
baidu_25665887
baidu_25665887 这里面没提RGB转CMYK怎么实现啊。我还想再问一下,CIE XYZ和CIE Lab这两个颜色空间要怎么才能映射到CMYK?
4 年多之前 回复
baidu_25665887
baidu_25665887 这里面没提RGB转CMYK怎么实现啊。我还想再问一下,CIE XYZ和CIE Lab这两个颜色空间要怎么才能映射到CMYK?
4 年多之前 回复
baidu_25665887
baidu_25665887 这里面没提RGB转CMYK怎么实现啊。我还想再问一下,CIE XYZ和CIE Lab这两个颜色空间要怎么才能映射到CMYK?
4 年多之前 回复
baidu_25665887
baidu_25665887 这里面没提RGB转CMYK怎么实现啊。我还想再问一下,CIE XYZ和CIE Lab这两个颜色空间要怎么才能映射到CMYK?
4 年多之前 回复
baidu_25665887
baidu_25665887 这里面没提RGB转CMYK怎么实现啊。我还想再问一下,CIE XYZ和CIE Lab这两个颜色空间要怎么才能映射到CMYK?
4 年多之前 回复
baidu_25665887
baidu_25665887 这里面没提RGB转CMYK怎么实现啊。我还想再问一下,CIE XYZ和CIE Lab这两个颜色空间要怎么才能映射到CMYK?
4 年多之前 回复
baidu_25665887
baidu_25665887 这里面没提RGB转CMYK怎么实现啊。我还想再问一下,CIE XYZ和CIE Lab这两个颜色空间要怎么才能映射到CMYK?
4 年多之前 回复
baidu_25665887
baidu_25665887 这里面没提RGB转CMYK怎么实现啊。我还想再问一下,CIE XYZ和CIE Lab这两个颜色空间要怎么才能映射到CMYK?
4 年多之前 回复
baidu_25665887
baidu_25665887 这里面没提RGB转CMYK怎么实现啊。我还想再问一下,CIE XYZ和CIE Lab这两个颜色空间要怎么才能映射到CMYK?
4 年多之前 回复

我记着有呢,看了一下果然没有,,这个我就不知道啦

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
RGB 和 CMYK 相互转换原理
作者:quester  来自:蓝色理想Adobe 色彩系统 RGB 和 CMYK 相互转换原理为了说明 adobe 的 RGB 转换 CMYK 的过程,不得不先涉及到一些色彩转换程序方面的东西。CMYK_ADOBE_COLORSPACE: r = (k*c)/maxval; g = (k*m)/maxval; b = (k*y)/maxval; 以上是 adobe 的 CMYK 到 RGB
CMYK与RGB参数转换公式及转换方法
1. RGB色彩模式  自然界中绝大部分的可见光谱可以用红、绿和蓝三色光按不同比例和强度的混合来表示。RGB分别代表着3种颜色:R代表红色,G代表绿色、B代表蓝色。RGB模型也称为加色模型,如图5所示。RGB模型通常用于光照、视频和屏幕图像编辑。 RGB色彩模式使用RGB模型为图像中每一个像素的RGB分量分配一个0~255范围内 的强度值。例如:纯红色R值为255,G值为0,B值为0
【C#】RGB,CMYK,HSB各种颜色表示的转换
一、表示颜色的方式有很多种,如RGB,CMYK,HSB,Hex等等  1、RGB:这种表示颜色由三原色构成,通过红,绿,蓝三种颜色分量的不同,组合成不同的颜色,例如,100%红+100%绿混合可以得到黄色,红绿蓝三种颜色叠加可以得到白色,基本上屏幕显示色彩都采用这种方式  2、CMYK:也称作印刷色彩模式,是一种依靠反光的色彩模式,主要用于印刷,和RGB类似,CMY是3种印刷油墨名称的首字母:青色...
JAVA RGB转CMYK 源码(支持格式转换)
Java CMYK转RGB源码网上很多,但是RGB转CMYK源码网上很少,那么多是只提供公式,要么提供依赖文件不全。这两天搜索很好久,终于找到一个可行方法。 项目使用maven搭建,依赖的工具包如下。在pom.xm文件添加该包依赖 javax.media.jai com.springsource.javax.media.jai.co
CMYK 转 RGB 小工具
小工具 可以简单的转换一下cmyk 到 rgb
使用OpenCV实现RGB、HSI、CMYK颜色空间的转换
RGB to HSI、CMYK的代码实现 前言     在之前博文的基础上,我使用OpenCV2实现了RGB颜色空间向HIS、CMYK转换的代码。下列链接为各种经典颜色空间的介绍及转换公式的介绍。     http://write.blog.csdn.net/postedit/43772147 1. RGB to HIS     HSI与RGB颜色空间可以进行相互转换。RGB转换到HSI
RGB与CMYK颜色值转换工具
提供RGB与CMYK值之间的相互转换,文件很小,方便转换。
图像rgb值和cmyk值转换
图像中rgb值和cmyk值转换,用于颜色空间变换。
RGB颜色值在线转换工具
小编开发了一个RGB颜色值在线转换工具,可以将RGB颜色转化为十六进制颜色值,非常的方便,并且还提供了十六进制颜色对照表,欢迎各位朋友来使用。http://www.tpyyes.com/a/html5/2017/1202/418.html 
CMYK与RGB相互转换(java)
package util;import java.awt.*;import javax.swing.*;import java.awt.color.*;public class ColorTranslate {  ICC_Profile ICC_pf;  ICC_ColorSpace ICC_ClSpace;//以下变量存储CMYK颜色值,取值为0到100  int C = 9;  int
RGB 和 CMYK 相互转换
Adobe 色彩 系统 RGB 和 CMYK 相互转换原理 为了说明 adobe 的 RGB 转换 CMYK 的过程,不得不先涉及到一些色彩转换 程序 方面的东西。 CMYK_ADOBE_COLORSPACE: r = (k*c)/maxval; g = (k*m)/maxval; b = (k*y)/maxval; 以上是 adobe 的 CMYK 到...
【OpenCV3】RGB图像向CMYK颜色空间转换
RGB(红色,绿色,蓝色)是表示光发射的颜色空间。CYMK(青色,黄色,品红色,黑色)表示光吸收的颜色空间
PANTONE色值互相转换RGB与CMYK
PANTONE色值互相转换RGB与CMYK,是设计师必备利器,用来查看PANTONE色值,尤其用于织物色值查询。 2010-10月补充编辑:看到这个小软件能帮助这么多朋友非常高兴。关于使用方面做点补充说明,打开后可以在右下角图标点击右键选择所需要的色织。希望对您有帮助。
Java实现RGB与CMYK色彩空间的转换
Java实现RGB与CMYK色彩空间的转换
用PHP将CMYK格式的JPG文件转为RGB格式
imagick是一个PHP的扩展,它调用ImageMagick提供的API来进行图片的操作 ImageMagick是一套软件系列,主要用于图片的创建、编辑以及转换等,详细的解释见ImageMagick的官方网站http://www.imagemagick.org/,ImageMagick与GD的性能要高很多,如果是在处理大量的图片时更加能体现ImageMagick的性能。 一、安装Im
.net下的RGB图片转CMYK处理C#
RGB图片转CMYK处理,使用ICC文件,采用原生方法
RGB 色值与十六进制色值互转
开发中时常遇到色值转换问题,记录下这几行代码,方便自己也方便看到此博客的你。 RGB 转 十六进制色值 RGB:分别对应红绿蓝三种色值,每个值的取值范围在 [0,255] 之间的整数。 转换方法: String hex = String.format(&amp;quot;#%02X%02X%02X&amp;quot;, Integer.parseInt(r), In...
Java 利用 ICC 色彩空间 color space profile 实现 RGB 和 CMYK 颜色的相互转换
ICC_ColorSpace 支持相应的色彩空间标准,有日本、欧洲和美国标准,在其中还有 Web 和 Page 等多种出版物所使用的色彩空间标准,这里以 Japan Coated 为例实现 RGB 和 CMYK 互换,至于其他工业标准的 ICC  Profile 则在 C:/Windows/System32/spool/drivers/color/ 目录内,各位自己找。 package
Java实现把cmyk格式图片转换为RGB格式图片
package com.pb.util;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGImageEncoder;import java.awt.Transparency;import java.awt.color.ColorSpace;import java.awt.image.Buffe...
为什么RGB模式印前必须转换为CMYK模式呢?
转:http://nyza.blog.163.com/blog/static/44463822200781284712853/1、什么是图像分辨率?为什么强调它? 答:高分辨率的图像比相同尺寸的低分辨率的图像包含的像素多,图像信息也较多,表现细节更清楚,这也就是考虑输出因素确定图
使用jmagick将CMYK转换为RGB
最近发现公司图片库中有些打水印的图片水印色彩和其他的不一样,后来发现是设计师上传的图片的色彩值是CMYK的,想要统一成RGB格式的。 之前使用的是jmagick进行的图片压缩和水印,看了一下jmagick的官方介绍,是有提供转换图片色彩格式的方法。记录一下,给碰到类似问题的同学提供参考。   jmagick的ColorspaceType里面是色彩格式对应的常量。   public s...
java下cmyk图片读取和转换rgb
记录一下整个过程   第一次采用的办法   public static String readImage(String filename) throws IOException { File file = new File(filename); ImageInputStream input = ImageIO.createImageInp...
彩色模型,及RGB,CMY,CMYK,HSI,CIE,YIQ,YUV相互转化及介绍
彩色模型(也称为彩色空间活彩色系统)目的是在某些标准下用可以接受的放对彩色加以说明。一般彩色空间的定义都是面向硬件或者面向应用的。常见的有RGB,CMY,CMYK,HSI,CIE,YIQ,YUV等。 1.RGB(red,green,blue红绿蓝)彩色模型 RGB模型中,每种颜色出现在红绿蓝的原色光谱分量中,所有颜色都有红绿蓝组成。基于笛卡尔坐标系。 假设一幅RGB图像,每通道都
OpenCV 颜色空间RGB 到HSI CMYK的转换 C++
从RGB 到HSI 的空间转换 给定一幅RGB彩色格式的图像,每个RGB像素的H分量可用下式得到: 其中等于 饱和度分量由下式给出: 强度分量下式得出: 上式已假定RGB归一化到【0-1】,且角度是根据HSI空间的红轴来度量。色调可以用6.2-2的结果除以360度归一化到[0-1]; 如果RGB已经归一化到[0-1],那其他两个分量已经归一化到0-1了。 ...
RGB转换工具
输入R;G;B值自动转换为16位和24位的RGB 输入R;G;B值自动转换为16位和24位的RGB
常见的颜色空间转换公式
颜色空间转换公式
颜色表示:HSB,Lab,RGB,CMYK与十六进制表示法
HSB:H(hues)表示色相,S(saturation)表示饱和度,B(brightness)表示亮度 Lab:Lab色彩模型是由明度(L)和有关色彩的a, b三个要素组成。L表示明度(Luminosity),a表示从洋红色至绿色的范围,b表示从黄色至蓝色的范围。L的值域由0到100,L=50时,就相当于50%的黑;a和b的值域都是由+127至-128,其中+127 a就是红色,渐渐过渡到
将图片由 RGB 转为 CMYK 格式
$file = 'orignal.png'; $file_cmyk = str_replace('.png', '_cmyk.jpg', $file); $icc1 = \Yii::getAlias('@vendor/imagine/imagine/lib/Imagine/resources/color.org/sRGB_IEC61966-2-1_blac...
在线的色值转换RGB网址
http://www.atool.org/colorpicker.php    iOS 里获得RGB值之后 //比如rgb 色值为73、 148 、230 那么ios 里面要在后面加.0f 再除以255 [bline setBackgroundColor:[UIColor colorWithRed:73.0f/255.0f green:148.0f/255.0f blue:23
Adobe的RGB与CMYK的色彩转换公式
Adobe的RGB与CMYK的色彩转换公式,适用于要求按照图示四色出图的朋友们。
数字图像处理 颜色空间RGB、HSI、CMYK、YUV的相互转换
颜色空间也称彩色模型(又称彩色空间或彩色系统)它的用途是在某些标准下用通常可接受的方式对彩色加以说明。 本文讲解RGB与HSI、CMYK、YUV的基本概念及转换算法。
PHP将CMYK颜色值和RGB颜色相互转换的例子
PHP将CMYK颜色值和RGB颜色相互转换的例子 转自:http://www.cnblogs.com/cfinder010/p/3867133.html function hex2rgb($hex) { $color = str_replace('#','',$hex); $rgb = array('r' => hexdec(substr($color,0,2)), 'g'
Android 将一张CMYK模式的图片转换成RGB模式的图片
Android系统是不能够显示打印模式(CMYK)的图片的。所以要在Andorid设备下显示CMYK模式的图片我得做法是将其转换成RGB模式的图片,但是通过转换颜色丢失比较大,如果大家有好的办法欢迎指正··· [code=&quot;java&quot;]ImageInfo info = new ImageInfo(Environment.getExternalStorageDirectory().getAbsol...
基于C++的RGB图像与CMYK图像相互转化的算法
基于C++的编程工程,用于将输入的RGB图片转化成四副灰度图,分别表示CMYK四个色彩在原图中的分量,并可将转化后的四种分量重新合成为RGB形式的新图,是一种图像处理分析的基础算法
rgb转换16进制色值(JS)
rgb转换16进制色值(JS)function showRGB(str){ var hexcode="#"; var v = str.substring(4,str.length-1); var s = v.split(","); for(var x=0;x<3;x++){ var n=s[x];
颜色模型转换公式
颜色模型转换公式 
为了用计算机来表示和处理颜色,必须采用定量的方法来描述颜色,即建立颜色模型。目前广泛使用的颜色模型有三类:计算颜色模型、工业颜色模型、视觉颜色模型。计算颜色模型又称为色度学颜色模型,主要应用于纯理论研究和计算推导;工业颜色模型侧重于实际应用的实现技术;视觉颜色模型用于与人直接接口的颜色模型和控制。
 1、计算颜色模型有CIE的RGB、XYZ、Luv、LCH、LAB、UCS、
RGB和CMYK配色表
顏色 英文名稱 RGB 16色   Snow 255 250 250 #FFFAFA   GhostWhite 248 248 255 #F8F8FF   WhiteSmoke 245 245 245 #F5F5F5   Gainsboro 220 220 220 #DCDCDC   FloralWhite 255
开发常用工具-RGB在线转换
RGB在线转换:在线转换
读取Tiff文件中CMYK色彩模式存储的图像数据,并转换为RGB色彩模式
读取Tiff文件中CMYK色彩模式存储的图像数据,并转换为RGB色彩模式
CMYK, RGB颜色值对照表
CMYK, RGB颜色值对照表 颜色 英文代码 形像颜色 HEX格式 RGB格式   LightPink 浅粉红 #FFB6C1 255,182,193   Pink 粉红 #FFC0CB 255,192,203
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 一份java的学习计划 比较好的大数据培训