图片识别技术java_Java图片识别技术原理

package ImageIO;

import javax.imageio.ImageIO;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

/**

* 图形识别技术

* @author c

* 时间:2015-4-6

* */

public class Image {

public static void main(String[] args) throws IOException {

BufferedImage bi = (BufferedImage) ImageIO.read(new File("C:/Users/e530c/Desktop/a.png"));

//获取图像的宽度和高度

int width = bi.getWidth();

int height = bi.getHeight();

//扫描图片

for(int i=0;i

for(int j=0;j

int dip = bi.getRGB(j, i);

if(dip == -1) System.out.print(" ");

else System.out.print("0");

}

System.out.println();//换行

}

}

}0818b9ca8b590ca3270a3433284dd417.png 000

0000

0000 0000 000

0000000 0000 0000

0000000000 000 00000

0000000000000 000 00000

0000000000000000 000 00000

0000000000000000000 000 00000

000000000000000 000 00000

00000000000 0000 000 00000

0000 0000 000 0000

0000 0000 00000

0000 0000 0000

0000 0000 00000

0000 0000 0000

0000 0000 000

0000 0000 000

0000 0000

0000000000000000000000000000000000000000000000000000000

00000000000000000000000000000000000000000000000000000000

00000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000

0000 0000

0000 0000 000

0000 0000 000

0000 0000 0000

0000 0000 0000

0000 0000 00000

0000 00 000 0000

0000 00000 0000 00000

0000 0000000 0000 00000

0000 0000000000 0000 0000

00000000000000 0000 00000

000000000000 0000 0000

000000000000 0000 00000

000000000000 0000 00000

000000000000 000000000

0000000000000000 00000000

000000000000 0000 0000000

000000000 0000 000000

00000 0000 000000

0000 000000 0000

0000 00000000 0000

0000 0000000000 0000

0000 000000 0000 0000

0000 000000 00000 0000

0000 000000 0000 0000

0000 000000 00000 0000

0000 0000000 00000 0000

0000 000000 000000 0000

0 0000 0000000 000000 0000

00000 000 0000000 000000 0000

00000000 0000 00000 000000 0000

000000000000000 000 0000000000

00000000000000 00000000

0000000000 0000000

000

ImageComparerUI——基于Java语言实现的相似图像识别,基于直方图比较算法。 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.MediaTracker; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JPanel; public class ImageComparerUI extends JComponent implements ActionListener { /** * */ private static final long serialVersionUID = 1L; private JButton browseBtn; private JButton histogramBtn; private JButton compareBtn; private Dimension mySize; // image operator private MediaTracker tracker; private BufferedImage sourceImage; private BufferedImage candidateImage; private double simility; // command constants public final static String BROWSE_CMD = "Browse..."; public final static String HISTOGRAM_CMD = "Histogram Bins"; public final static String COMPARE_CMD = "Compare Result"; public ImageComparerUI() { JPanel btnPanel = new JPanel(); btnPanel.setLayout(new FlowLayout(FlowLayout.LEFT)); browseBtn = new JButton("Browse..."); histogramBtn = new JButton("Histogram Bins"); compareBtn = new JButton("Compare Result"); // buttons btnPanel.add(browseBtn); btnPanel.add(histogramBtn); btnPanel.add(compareBtn); // setup listener... browseBtn.addActionListener(this); histogramBtn.addActionListener(this); compareBtn.addActionListener(this); mySize = new Dimension(620, 500); JFrame demoUI = new JFrame("Similiar Image Finder"); demoUI.getContentPane().setLayout(new BorderLayout()); demoUI.getContentPane().add(this, BorderLayout.CENTER); demoUI.getContentPane().add(btnPanel, BorderLayout.SOUTH); demoUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); demoUI.pack(); demoUI.setVisible(true); } public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; if(sourceImage != null) { Image scaledImage = sourceImage.getScaledInstance(300, 300, Image.SCALE_FAST); g2.drawImage(scaledImage, 0, 0, 300, 300, null); } if(candidateImage != null) { Image scaledImage = candidateImage.getScaledInstance(300, 330, Image.SCALE_FAST); g2.drawImage(scaledImage, 310, 0, 300, 300, null); } // display compare result info here Font myFont = new Font("Serif", Font.BOLD, 16); g2.setFont(myFont); g2.setPaint(Color.RED); g2.drawString("The degree of similarity : " + simility, 50, 350); } public void actionPerformed(ActionEvent e) { if(BROWSE_CMD.equals(e.getActionCommand())) { JFileChooser chooser = new JFileChooser(); chooser.showOpenDialog(null); File f = chooser.getSelectedFile(); BufferedImage bImage = null; if(f == null) return; try { bImage = ImageIO.read(f); } catch (IOException e1) { e1.printStackTrace(); } tracker = new MediaTracker(this); tracker.addImage(bImage, 1); // blocked 10 seconds to load the image data try { if (!tracker.waitForID(1, 10000)) { System.out.println("Load error."); System.exit(1); }// end if } catch (InterruptedException ine) { ine.printStackTrace(); System.exit(1); } // end catch if(sourceImage == null) { sourceImage = bImage; }else if(candidateImage == null) { candidateImage = bImage; } else { sourceImage = null; candidateImage = null; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值