java图片差异捕捉代码 java图片差异捕捉代码是什么( 二 )


tmpImage.setRGB(0, 0, w, h, rgbs,0,w);
return tmpImage;
}
public void paint(Graphics g){
super.paint(g);
g.drawImage(image,0,0,this);
System.out.println("("+x1+","+y1+")("+x2+","+y2+")");
if(x1==0y1==0x2==0y2==0) return;
System.out.println("rect");
int x=x1x2?x1:x2;
int y=y1y2?y1:y2;
int w=(x1x2?x1:x2)-x;
int h=(y1y2?y1:y2)-y;
g.setColor(Color.blue);
g.drawRect(x, y, w, h);
}
protected static void setClipboardImage2(final Image image) {
Transferable trans = new Transferable(){
public DataFlavor[] getTransferDataFlavors() {
return new DataFlavor[] { DataFlavor.imageFlavor };
}
public boolean isDataFlavorSupported(DataFlavor flavor) {
return DataFlavor.imageFlavor.equals(flavor);
}
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
if(isDataFlavorSupported(flavor))
return image;
throw new UnsupportedFlavorException(flavor);
}
};
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(trans, null);
}
public static void main(String args[]){
JFrame jf=new JFrame("");
jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);
jf.setBounds(50,50,1024,768);
jf.add(new DivImageByMouse(new File("e:\\109.jpg")));
jf.add(new JButton(""),"North");
jf.setVisible(true);
}
}
Java图像去噪怎么实现?流程不外乎是
读取图像文件;
扫描噪点;
去除噪点;
保存图像文件 。
Java2D操作好像使用BufferedImage读取图像文件最方便 , 有一阵没弄这了,忘了 。应该可以读取JPG,PNG,GIF图像 。
识别噪点应该有专门的算法,我没研究过,百度一下应该能找到专门算法,然后写段代码就可以 。我个人以为是独立一个像素与周围一定范围内的像素差异过大,就认为是噪点 。可以有亮度,色相上的差别 。BufferedImage可以读取每个像素的RGB , 从而能识别色相的差别;还有个矩阵,用来由RGB计算亮度的,也就可以计算亮度差别了,这个网上都能找到 。
输出也使用BufferedImage就可以 。
关键是每个像素都要和周围像素比较 , 还要计算亮度,最少是三重循环了,如何提高效率是个大问题了 。这个代码写好了也算一个高手了 。
关于java图片差异捕捉代码和java图片差异捕捉代码是什么的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读