前言
图片对比获取坐标的方法很多,我选择了比较简单的方法:对比rgb值。要想对比rgb值,就得先获取图片的rgb值。运用的是BufferedImage里的getRGNB方法。
解决方案
主要思路:
首先用.getWidth和.getHeight方法获取图片的宽度和高度,用.getMinX和.getMinY方法获取最小x,y坐标值。再循环图片所有点坐标,并且用getRGB获取其rgb值,这里获取的并不是10进制的,需要转化为10进制。
java代码:
package 脚本学习; import java.awt.image.BufferedImage; import javax.imageio.ImageIO; import java.io.*; public class getrgb{ public static void main(String args[]) throws IOException{ int[] rgb = new int[3]; File file = new File("1.jpg"); BufferedImage bi=null; bi = ImageIO.read(file); int width=bi.getWidth(); int height=bi.getHeight(); int minx=bi.getMinX(); int miny=bi.getMinY(); System.out.println("width="+width+",height="+height+"."); System.out.println("minx="+minx+",miniy="+miny+"."); 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); System.out.println("i="+i+",j="+j+":("+rgb[0]+","+rgb[1]+","+rgb[2]+")"); } } } }
|
结语
这里只是简单的把rgb值打印了出来,之后要对比得话可以将它存进一个二元矩阵里,每个矩阵元素就是rgb值,这样就可以方便对比算法进行对比。
END
实习主编 | 王楠岚
责 编 | 王自强
where2go 团队
微信号:算法与编程之美
长按识别二维码关注我们!
温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发!