时间:2021-05-19
本文实例为大家分享了java使用电脑摄像头识别二维码的具体代码,供大家参考,具体内容如下
要想摄像头识别二维码,需要两个基本功能:
1、从摄像头获取图像,2、根据图片解析出二维码信息。
在上一篇java摄像头截图已经实现了摄像头截图,只要再加上zxing(或其它能从图片中解析二维码的组件),就能从图像中解析出二维码,实现代码如下:
package com.pengo.capture;import javax.swing.JFrame;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.InputStream;import javax.media.MediaLocator;import javax.swing.JPanel;import javazoom.jl.player.Player;import com.google.zxing.BinaryBitmap;import com.google.zxing.LuminanceSource;import com.google.zxing.MultiFormatReader;import com.google.zxing.Result;import com.google.zxing.common.HybridBinarizer; import net.sf.fmj.ui.application.CaptureDeviceBrowser;import net.sf.fmj.ui.application.ContainerPlayer;import net.sf.fmj.ui.application.PlayerPanelPrefs;public class CameraFrame2 extends JFrame{ private static int num = 0; public CameraFrame2() throws Exception{ this.setTitle("摄像头截图应用"); this.setSize(480, 500); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JPanel cameraPanel = new JPanel(); this.getContentPane().setLayout(new BorderLayout()); this.getContentPane().add(cameraPanel, BorderLayout.CENTER); ContainerPlayer containerPlayer = new ContainerPlayer(cameraPanel); MediaLocator locator = CaptureDeviceBrowser.run(null); //弹出摄像头设备选择 PlayerPanelPrefs prefs = new PlayerPanelPrefs(); containerPlayer.setMediaLocation(locator.toExternalForm(), prefs.autoPlay); new Thread() { public void run() { while (true) { try { Thread.sleep(1000); Dimension imageSize = cameraPanel.getSize(); BufferedImage image = new BufferedImage( imageSize.width, imageSize.height, BufferedImage.TYPE_INT_ARGB); Graphics2D g = image.createGraphics(); cameraPanel.paint(g); g.dispose(); LuminanceSource source = new BufferedImageLuminanceSource( image); BinaryBitmap bitmap = new BinaryBitmap( new HybridBinarizer(source)); Result result; result = new MultiFormatReader().decode(bitmap); System.out.println("二维码====:" + result.getText()); InputStream is = CameraFrame.class.getClassLoader().getResourceAsStream("resource/beep.mp3"); Player player = new Player(is); player.play(); } catch (Exception re) { re.printStackTrace(); } } } }.start(); } public static void main(String[] args) throws Exception{ CameraFrame2 camera = new CameraFrame2(); camera.setVisible(true); } }最后来张效果图(本图仅供参考)
要想识别效果好点,摄像头像素最好500W以上,活动二维码签到、物品扫描,只需扛台手提,再加个高清摄像头就行了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
ios11正式版新增哪些功能?原生相机直接扫码识别相机就能识别二维码。没错,苹果针对国人的使用习惯,让iPhone的摄像头能直接识别二维码了。扫描之后,你就能马
二维码扫描不出来的原因: 1、二维码太模糊,看不清楚,所以扫描不出来。 2、摄像头有灰尘或者其他杂物,导致摄像头无法捕捉清晰的图像。 3、扫描软件问题,尝
二维码的最大容量取决于主流扫码设备的分辨能力。二维码自身信息量越多,所需的像素点越多;像素越多,越难分辨和解码,因为扫码设备(摄像头)有分辨上限。 二维码又称
通常我们进行摄像头操作,如扫描二维码需要判断是否有后置摄像头(Rearcamera),比如Nexus7一代就没有后置摄像头,这样在尝试使用的时候,我们需要进行判
1、启动Alook浏览器,点击界面右上角的二维码按钮。 2、浏览器会进入拍摄模式,并调用手机的后置摄像头。 3、把镜头对准要扫描的二维码,它就会自动识别转跳