rgbhsvjava的简单介绍
今天给各位分享rgbhsvjava的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、maya灯光颜色中的RGB和HSV分别指什么,有什么区别?
- 2、java里设置背景颜色的HSBTORGB方法,这个方法怎么用?是什么意思?
- 3、java实现提取图片每一点的RGB
- 4、rgb和hsv哪个适合画画
- 5、RGB和HSV有何不同
- 6、给定一幅图像,用java读取每个像素的RGB三个颜色值
maya灯光颜色中的RGB和HSV分别指什么,有什么区别?
RGB代表红绿蓝三种颜色,HSV代表色相饱和度和亮度。前者是电脑表面颜色使用的方法,不够直观。后者模拟人视觉原理,比较直观。举个例子,在RGB模式下,想要调出某种颜色你需要根据理论,而不是视觉感觉(比如说,想要调出黄色,你就要知道黄色是怎样形成的),而在HSV模式下,你很容易根据视觉调出你想要的颜色,因为所有的颜色都在色谱上可供你直接选择。所以在的时候,模式一般用HSv,当然也可以用其它的。
java里设置背景颜色的HSBTORGB方法,这个方法怎么用?是什么意思?
HSB和RGB是两种不同的颜色模型;这个方法只是模型上的转换,如果楼主对颜色没什么大要求,可以忽略这个问题,这个方法也没有必要深究
java实现提取图片每一点的RGB
public class TestActionAction extends Action {
public void doSome(){
try {
//
//ImageIO.read("");
ImageIcon[] image={new ImageIcon("G://公司项目/Images/Map/157.png"),new ImageIcon("G://公司项目/Images/Map/158.png"),new ImageIcon("G://公司项目/Images/Map/159.png"),new ImageIcon("G://公司项目/Images/Map/160.png")};
//BufferedImage相当于一个画布,在存在于内存中
BufferedImage img=new BufferedImage((image.length)*256 ,256,BufferedImage.TYPE_INT_RGB);
//必须创建Graphics2D对象和drawImage,不然画出来的只是image.getIconWidth*image.getIconHeight()那么大一个全黑图像
Graphics2D gs=(Graphics2D)img.getGraphics();
for(int i=0;iimage.length;i++){
String k="";
gs.
}
gs.drawImage(image[0].getImage(), 0, 0, image[0].getImageObserver());
int huabuwid=img.getWidth();
int huabuhid=img.getHeight();
for(int i=0;ihuabuwid;i++){
for(int j=0;jhuabuhid;j++){
//基于坐标取出相对应的RGB
int rgb=img.getRGB(i, j);
int R = (rgb 0xff0000) 16;
int G = (rgb 0xff00) 8;
int B = (rgb 0xff);
rgb=((R*256)+G)*256+B;
//把RGB值设置进相对应的坐标
img.setRGB(i, j, rgb);
}
}
gs.drawImage(image[1].getImage(), 256, 0, image[1].getImageObserver());
for(int i=0;ihuabuwid;i++){
for(int j=0;jhuabuhid;j++){
//基于坐标取出相对应的RGB
int rgb=img.getRGB(i, j);
int R = (rgb 0xff0000) 16;
int G = (rgb 0xff00) 8;
int B = (rgb 0xff);
rgb=((R*256)+G)*256+B;
//把RGB值设置进相对应的坐标
img.setRGB(i, j, rgb);
}
}
gs.drawImage(image[2].getImage(), 512, 0, image[2].getImageObserver());
for(int i=0;ihuabuwid;i++){
for(int j=0;jhuabuhid;j++){
//基于坐标取出相对应的RGB
int rgb=img.getRGB(i, j);
int R = (rgb 0xff0000) 16;
int G = (rgb 0xff00) 8;
int B = (rgb 0xff);
rgb=((R*256)+G)*256+B;
//把RGB值设置进相对应的坐标
img.setRGB(i, j, rgb);
}
}
gs.drawImage(image[3].getImage(), 768, 0, image[3].getImageObserver());
for(int i=0;ihuabuwid;i++){
for(int j=0;jhuabuhid;j++){
//基于坐标取出相对应的RGB
int rgb=img.getRGB(i, j);
int R = (rgb 0xff0000) 16;
int G = (rgb 0xff00) 8;
int B = (rgb 0xff);
rgb=((R*256)+G)*256+B;
//把RGB值设置进相对应的坐标
img.setRGB(i, j, rgb);
}
}
//释放Graphics2D对象
gs.dispose();
//以流的方式保存文件
FileOutputStream outfile = new FileOutputStream("G:/1.png" );
ImageOutputStream i=ImageIO.createImageOutputStream(outfile);
ImageIO.write(img, "png", i);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args){
new TestActionAction().doSome();
}
}
rgb和hsv哪个适合画画
hsv中画画比较好。
RGB适合于显示系统,却并不适合于图像处理。
HSV能够直观地表达颜色的色调,鲜艳程度和明暗程度,方便进行颜色的对比,它比BGR更容易跟踪某种颜色的物体,常用于分割指定颜色的物体。
RGB和HSV有何不同
一、本质特性不同
RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。
HSV是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型。这个模型中颜色的参数分别是:色调(H),饱和度(S),明度(V)。由于HSV是一种比较直观的颜色模型,所以在许多图像编辑工具中应用比较广泛。
二、发光理论不同
RGB是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于三者亮度之总和,越混合亮度越高,即加法混合。红、绿、蓝三盏灯的叠加情况,中心三色最亮的叠加区为白色。
HSV模型的三维表示从RGB立方体演化而来。设想从RGB沿立方体对角线的白色顶点向黑色顶点观察,就可以看到立方体的六边形外形。六边形边界表示色彩,水平轴表示纯度,明度沿垂直轴测量。用16Bit表示HSV的话,可以用7位存放H,4位存放S,5位存放V。
扩展资料:
HSV颜色模型概述:
1、色调H
用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°。
2、饱和度S
饱和度S表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大,颜色接近光谱色的程度就愈高,颜色的饱和度也就愈高。饱和度高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。取值范围为0%~100%,值越大,颜色越饱和。
3、明度V
明度表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白)。RGB和CMY颜色模型都是面向硬件的,而HSV(Hue Saturation Value)颜色模型是面向用户的。
参考资料来源:百度百科-RGB
参考资料来源:百度百科-HSV
给定一幅图像,用java读取每个像素的RGB三个颜色值
int rgbR;
int rgbG;
int rgbB;
int minx = 0;
int miny = 0;
try {
File file = new File("E:\\dd.png");
BufferedImage image = ImageIO.read(file);
int width = image.getWidth();//图片宽度
int height = image.getHeight();//图片高度
for (int i = minx; i width; i++) {
for (int j = miny; j height; j++) {
int pixel = image.getRGB(i, j); // 下面三行代码将一个数字转换为RGB数字
rgbR = (pixel 0xff0000) 16;
rgbG = (pixel 0xff00) 8;
rgbB = (pixel 0xff);
System.out.println("i=" + i + ",j=" + j + ":(" + rgbR + "," + rgbG + "," + rgbB + ")");
}
}
System.out.println("图片宽度为:"+width+",高度为:"+height);
} catch (IOException e) {
System.out.println("读取文件出错");
e.printStackTrace();
}
rgbhsvjava的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、rgbhsvjava的信息别忘了在本站进行查找喔。
发布于:2022-12-21,除非注明,否则均为
原创文章,转载请注明出处。