利用空间距离比较两张图片颜色的相似度
2017-02-25 10:24
246 查看
在图像处理中,图像模式一般有RGB模式和HSI模式。前者将色彩分为red、green、blue三种颜色,通过各个分量的值来比较颜色,但是需要注意的是,计算rgb分量需要算出一张图片的像素点,取平均得到rgb的平均值,这种颜色比较简单,但是不能真实地反映两张图像的颜色的相似性,因此,需要用空间距离来比较。
/*
* 利用空间距离比较rgb
* */
public void space(String Image){
float[] rgb = new float[3];
File file = new File(Image);
BufferedImage bi = null;
try {
bi = ImageIO.read(file);
} catch (Exception e) {
e.printStackTrace();
}
int width = bi.getWidth();
int height = bi.getHeight();
int minx = bi.getMinX();
int miny = bi.getMinY();
int R = 0;
int red = 0;
int green = 0;
int blue = 0;
for (int i = minx; i < width; i++) {
for (int j = miny; j < height; j++) {
int pixel = bi.getRGB(i, j);
rgb[0] = (pixel & 0xff0000) >> 16;
rgb[1] = (pixel & 0xff00) >> 8;
rgb[2] = (pixel & 0xff);
red += rgb[0];
green += rgb[1];
blue += rgb[2];
R = i * j;
}
}
float red1 = red / R;
float green1 = green / R;
float blue1 = blue / R;
double space = (float) (Math.pow((red1-avgr), 2)+Math.pow((green1-avgg), 2)+Math.pow((blue1-avgb), 2));
spacelength = Math.sqrt(space);
}
public static void sop(Object obj)// 输出
{
System.out.println(obj);
}
/*
* 利用空间距离比较rgb
* */
public void space(String Image){
float[] rgb = new float[3];
File file = new File(Image);
BufferedImage bi = null;
try {
bi = ImageIO.read(file);
} catch (Exception e) {
e.printStackTrace();
}
int width = bi.getWidth();
int height = bi.getHeight();
int minx = bi.getMinX();
int miny = bi.getMinY();
int R = 0;
int red = 0;
int green = 0;
int blue = 0;
for (int i = minx; i < width; i++) {
for (int j = miny; j < height; j++) {
int pixel = bi.getRGB(i, j);
rgb[0] = (pixel & 0xff0000) >> 16;
rgb[1] = (pixel & 0xff00) >> 8;
rgb[2] = (pixel & 0xff);
red += rgb[0];
green += rgb[1];
blue += rgb[2];
R = i * j;
}
}
float red1 = red / R;
float green1 = green / R;
float blue1 = blue / R;
double space = (float) (Math.pow((red1-avgr), 2)+Math.pow((green1-avgg), 2)+Math.pow((blue1-avgb), 2));
spacelength = Math.sqrt(space);
}
public static void sop(Object obj)// 输出
{
System.out.println(obj);
}
相关文章推荐
- JAVA 比较两张图片的相似度
- 两张图片相似度比较
- 利用颜色直方图计算8张图片的相似度,并按相似度的高低依次显示出图片
- JAVA比较两张图片相似度的方法
- JAVA 比较两张图片的相似度的代码
- 利用opencv做图片相似度比较
- 转:OpenCV学习笔记3:找出人脸,同时比较两张图片中的人脸相似度
- 用delphi比较两张图片的相似度
- 利用opencv做图片相似度比较
- RGB HSV 颜色空间 颜色距离 颜色相似度
- Java 比较两张图片的相似度
- JAVA 比较两张图片的相似度
- JAVA 比较两张图片的相似度的代码(未测试)
- 如何实现“比较两张图片的相似度”,或者说“比较两张图片是否基本一致”的算法?
- java--比较两张图片的相似度
- python3-opencv库(3)--图片颜色空间转换,利用HSV进行物体跟踪,图像通道分离与合并
- JAVA 比较两张图片的相似度
- JAVA 比较两张图片的相似度
- RGB HSV 颜色空间 颜色距离 颜色相似度
- JAVA 比较两张图片的相似度的代码