导航:首页 > 源码编译 > rgb缩放算法

rgb缩放算法

发布时间:2022-08-06 06:42:04

① rgb色彩模式中r的值的大小是如何定义的

算法描述。
步骤1:把RGB值转成中数值。

步骤2:找出R,G和B中的最大值。

步骤3:设L=(maxcolor + mincolor)/2

步骤4:如果最大和最小的颜色值相同,即表示灰色,那么S定义为0,而H未定义并在程序中通常写成0。

步骤5:否则,测试L:
If L<0.5, S=(maxcolor-mincolor)/(maxcolor + mincolor)
If L>=0.5, S=(maxcolor-mincolor)/(2.0-maxcolor-mincolor)

步骤6: If R=maxcolor, H=(G-B)/(maxcolor-mincolor)
If G=maxcolor, H=2.0+(B-R)/(maxcolor-mincolor)
If B=maxcolor, H=4.0+(R-G)/(maxcolor-mincolor)

步骤7:从第6步的计算看,H分成0~6区域。RGB颜色空间是一个立方体而HSL颜色空间是两个六角形锥体,其中的L是RGB立方体的主对角线。因此,RGB立方体的顶点:红、黄、绿、青、蓝和品红就成为HSL六角形的顶点,而数值0~6就告诉我们H在哪个部分。H=H*60.0,如果H为负值,则加360。

② ps如何缩小后图片RGB为100%

第一个问题:
我估计你要的是显示比例吧。。。。

(1)转鼠标滚轮
(2)看到屏幕最左下角没?改掉%号旁边的数字
(3)选中缩放工具或者按快捷键Z,然后鼠标右键,选择“满画布显示”

第二个问题:
我估计你问的是图片的缩放吧。。。

(1)按住ALT再点两下I,改变数字
(2)菜单栏--图像--图像大小,改变数字
一般比较小的图片显示都会是100%,只要你把图片改得小于屏幕尺寸就肯定是100%了

其中我要纠正你的一点是
“如何缩小后的新图片RGB为100%”RGB是图像模式,XX%是显示比例,两者连在一起是PS为了用户更加清楚明了文档的信息,你别混在一起了。

③ RGB函数计算公式:颜色值=(65536*blue)+(256*green)+(red)

65536是256的二次方,
RGB是以256进制的数字,也就是说R上的m相当于G上的256*m,相当于B上的256*256*m.
G上的n相当于B上的256*n.
所以你的数字好像写错了,应该是:
颜色值=(65536*Red)+(256*Green)+(Blue)

④ 最近在做图像处理的程序时候找到一个图片缩放的算法,但是算法的注释太少,看不懂,在这里贴出来,求解释。

别浪费时间啦,有时间在这里问问题,还不如多逛逛 博客园 或者 CSDN,自己好好钻研一下吧!

⑤ 求一个计算RGB颜色值的算法,色差要尽量大,从黑色到白色之间可以计算出来100个以上颜色,尽量用C++

在RGB颜色模型下,要100个颜色设一个变量从0到0x1000000之间分成100递增即可,颜色差值最大。

javaapplet最简演示,附图。从黑到白100个颜色块

=====

importjava.applet.Applet;

importjava.awt.Color;

importjava.awt.Graphics;

publicclassTestextendsApplet{

=1802199483736051124L;

publicintnum_of_colors;

@Override

publicvoidinit(){

num_of_colors=100;//如果要多可以设得更多

}

@Override

publicvoidpaint(Graphicsg){

introw_max=(int)Math.sqrt(num_of_colors);

intcol_w=getWidth()/row_max;

intx=0,y=0;

intcd=(int)(0x1000000L/num_of_colors);

intc=0;

for(intn=0;n<num_of_colors;n++){

g.setColor(newColor(c));

g.fillRect(x,y,col_w,col_w);

c+=cd;

if(n%row_max==0&&n>0){

x=0;

y+=col_w;

}elsex+=col_w;

}

}

}

⑥ 纯色在RGB空间里面的位置是什么纯色的RGB算法是什么

纯色在色坐标上很容易找到, 这个你需要网络"1931xy色坐标绘制".
另外,你对纯色有一定的误解.
在RGB上, 也就是你希望得到(xxx,xxx,xxx) 这种类型是不行的.
所谓的(255,255,0)并不是指的纯色黄色光, 它指的是你的电脑显示器的像素中 R像素和G像素最大亮度时混合而成的黄光, 用专业的光学来解释也就是说: 这时得到的黄色仅仅是在你显示器的色域R,G两点连线的边上. 并非是所谓的对应单一的波长的黄光.
简单来说,也就是你所谓的RGB空间其实是指你显示器的色域空间, 要确定这个色域空间的颜色坐标需要先将R,G,B 三色画面的坐标(x,y)以及亮度(L)利用光学仪器测出, 然后利用三角形原理即可算出所有坐标.

⑦ PAL或者NTSC制式 BT.656(YUV 4:2:2) 转化为BMP格式图片(RGB)算法

今天对颜色一些格式转换有些不明白的地方,在网上找了一些文章,感谢原作者,现张贴如下:

颜色空间是一个三维坐标系统,每一种颜色由一个点表示。在 RGB 颜色空间中,红,绿,蓝是基本元素。RGB 格式是显示器通常使用的格式。在 YUV 空间中,每一个颜色有一个亮度信号 Y,和两个色度信号 U 和 V。亮度信号是强度的感觉,它和色度信号断开,这样的话强度就可以在不影响颜色的情况下改变。YUV 格式通常用于 PAL制,即欧洲的电视传输标准,而且缺省情况下是图像和视频压缩的标准。

YUV 使用RGB的信息,但它从全彩色图像中产生一个黑白图像,然后提取出三个主要的颜色变成两个额外的信号来描述颜色。把这三个信号组合回来就可以产生一个全彩色图像。

YUV 使用红,绿,蓝的点阵组合来减少信号中的信息量。Y 通道描述 Luma 信号,它与亮度信号有一点点不同,值的范围介于亮和暗之间。 Luma 是黑白电视可以看到的信号。U (Cb) 和 V (Cr) 通道从红 (U) 和蓝 (V) 中提取亮度值来减少颜色信息量。这些值可以从新组合来决定红,绿和蓝的混合信号。

YUV和RGB的转换: ★这里是不是不是yuv而是Y Cb Cr???★
Y = 0.299 R + 0.587 G + 0.114 B
U = -0.1687 R - 0.3313 G + 0.5 B + 128
V = 0.5 R - 0.4187 G - 0.0813 B + 128

R = Y + 1.402 (V-128)
G = Y - 0.34414 (U-128) - 0.71414 (V-128)
B = Y + 1.772 (U-128)
以前,一直没明白yuv和YcbCr之间的差异,想必有些朋友也会有同样的疑惑。所以,我看完之后就记载下来了。
一、和rgb之间换算公式的差异

yuv<-->rgb

Y'= 0.299*R' + 0.587*G' + 0.114*B'
U'= -0.147*R' - 0.289*G' + 0.436*B' = 0.492*(B'- Y')
V'= 0.615*R' - 0.515*G' - 0.100*B' = 0.877*(R'- Y')
R' = Y' + 1.140*V'
G' = Y' - 0.394*U' - 0.581*V'
B' = Y' + 2.032*U'

yCbCr<-->rgb

Y’ = 0.257*R' + 0.504*G' + 0.098*B' + 16
Cb' = -0.148*R' - 0.291*G' + 0.439*B' + 128
Cr' = 0.439*R' - 0.368*G' - 0.071*B' + 128
R' = 1.164*(Y’-16) + 1.596*(Cr'-128)
G' = 1.164*(Y’-16) - 0.813*(Cr'-128) - 0.392*(Cb'-128)
B' = 1.164*(Y’-16) + 2.017*(Cb'-128)

Note: 上面各个符号都带了一撇,表示该符号在原值基础上进行了gamma correction

二、来源上的差异

yuv色彩模型来源于rgb模型,该模型的特点是将亮度和色度分离开,从而适合于图像处理领域。
应用:basic color model used in analogue color TV broadcasting.用在模拟彩色电视广播的基本颜色模型中

YCbCr模型来源于yuv模型。YCbCr is a scaled and offset version of the YUV color space.
应用:数字视频,ITU-R BT.601 recommendation

ps:
通过上面的比较可以确定,我们在h.264,mpeg等编码标准中用的yuv其实是YcbCr,大家不要被名称搞混淆了。

人类视觉系统(HVS)相比亮度来说对于颜色不是那么敏感的。在RGB颜色空间中,三种颜色被平等地看待,并用相同的分辨率
存放起来。但是通过把亮度与颜色信息分离,并对亮度值取更高的分辨率可以更有效地表示一个颜色图像。

YCbCr颜色空间和它的变换(通常写为YUV)是一种流行而高效的表示一个颜色图像的方法。Y是亮度值,由R,G,B的加权平均可以
得到: Y=krR + kgG + kbB
这里k是加权因子。

颜色信号可以由不同的颜色差别来表示:
Cb = B-Y
Cr = R-Y
Cg = G-Y
对于一个颜色图像的完整的描述由给定Y和三个色差:Cb,Cr,Cg来表示。

目前为止,我们的表示方法好像并不那么好,因为相比RGB表示来说,我们这次用了四个参数。然后Cb+Cr+Cg是一个常数,那么
我们只需要两个色度参数就可以了,第三个可以通过其他两个计算出来。在YCbCr空间中,只有Y和Cb,Cr值被传输和存储,而且
Cb和Cr的分辨率可以比Y低,因为人类视觉系统对于亮度更加敏感。这就减少了表示图像的数据量。通常的观察情况下,RGB和
YCbCr表示的图像看上去没有什么不同。对于色度采用比亮度低的分辨率进行采样是一种简单而有效的压缩办法。

一个RGB图像可以在捕捉之后转换为YCbCr格式用来减少存储和传输负担。在显示图象之前,再转回为RGB.注意没有必要去指明
分别的加权值kg(因为kb+kr+kg=1),而且G可以从YCbCr中解压出来,这说明不需要存储和传输Cg参数。

Y = kr R + (1-kb-kr)G + kb B
Cb = 0.5/(1-kb) * (B-Y)
Cr = 0.5/(1-kr) * (R-Y)

R = Y + (1-kr)/0.5 * Cr
G = Y - 2kb(1-kb)/(1-kb-kr) * Cb - 2kr(1-kr)/(1-kb-kr) * Cr
B = Y + (1-kb)/0.5 * Cb

ITU-R的BT.601决议定义了kb=0.114,kr=0.299,那么代换参数就有了如下等式:

Y = 0.299R + 0.587G + 0.114B
Cb = 0.564(B - Y )
Cr = 0.713(R - Y )

R = Y + 1.402Cr
G = Y - 0.344Cb - 0.714Cr
B = Y + 1.772Cb

2.4.3 YCbCr采样格式

4:4:4采样就是说三种元素Y,Cb,Cr有同样的分辨率,这样的话,在每一个像素点上都对这三种元素进行采样.数字4是指在水平方向
上对于各种元素的采样率,比如说,每四个亮度采样点就有四个Cb的Cr采样值.4:4:4采样完整地保留了所有的信息值.4:2:2采样中
(有时记为YUY2),色度元素在纵向与亮度值有同样的分辨率,而在横向则是亮度分辨率的一半(4:2:2表示每四个亮度值就有两个Cb
和Cr采样.)4:2:2视频用来构造高品质的视频彩色信号.

在流行的4:2:0采样格式中(常记为YV12)Cb和Cr在水平和垂直方向上有Y分辨率的一半.4:2:0有些不同,因为它并不是指在实际采样
中使用4:2:0,而是在编码史中定义这种编码方法是用来区别于4:4:4和4:2:2方法的).4:2:0采样被广泛地应用于消费应用中,比如
视频会议,数字电视和DVD存储中。因为每个颜色差别元素中包含了四分之一的Y采样元素量,那么4:2:0YCbCr视频需要刚好4:4:4
或RGB视频中采样量的一半。

4:2:0采样有时被描述是一个"每像素12位"的方法。这么说的原因可以从对四个像素的采样中看出.使用4:4:4采样,一共要进行12次
采样,对每一个Y,Cb和Cr,就需要12*8=96位,平均下来要96/4=24位。使用4:2:0就需要6*8=48位,平均每个像素48/4=12位。

在一个4:2:0隔行扫描的视频序列中,对应于一个完整的视频帧的Y,Cb,Cr采样分配到两个场中。可以得到,隔行扫描的总采样数跟
渐进式扫描中使用的采样数目是相同的。

阅读全文

与rgb缩放算法相关的资料

热点内容
鲁班锁解压吗 浏览:395
打包发送文件如何加密 浏览:213
centos解压缩zip 浏览:387
我的世界怎么用命令风块取消指令 浏览:1000
安卓软件请求超时怎么办 浏览:476
androidapp调用另一个app 浏览:621
数控铣床法兰克子程序编程 浏览:173
linux打包命令targz 浏览:996
抖音app是哪个 浏览:407
苹果app怎么上架 浏览:255
NA服务器地址 浏览:427
我的世界如何初始化服务器 浏览:97
哪个手机app天气预报最准 浏览:752
怎样把视频压缩至25m 浏览:570
vivox27文件夹怎么改变 浏览:727
新手玩狼人杀用什么app 浏览:615
pdf在线查看 浏览:954
安卓tv90如何关闭后台 浏览:683
php读取word乱码 浏览:755
minicom源码 浏览:1002