java 图片中的二维码定位 您所在的位置:网站首页 Java识别二维码 java 图片中的二维码定位

java 图片中的二维码定位

2024-04-11 08:57| 来源: 网络整理| 查看: 265

java 图片中的二维码定位

使用技术:opencv 3.4.14 执行下载安装

import com.google.zxing.*; import com.google.zxing.client.j2se.BufferedImageLuminanceSource; import com.google.zxing.common.HybridBinarizer; import org.opencv.core.*; import org.opencv.core.Point; import org.opencv.imgcodecs.Imgcodecs; import org.opencv.imgproc.Imgproc; import org.opencv.objdetect.QRCodeDetector; import org.opencv.utils.Converters; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.awt.image.DataBufferByte; import java.io.ByteArrayInputStream; import java.io.File; import java.io.InputStream; import java.util.*; import java.util.List; /** * 参考:https://www.cnblogs.com/huacanfly/p/9908408.html * 参考:https://blog.csdn.net/StrangeSir/article/details/93143177 * 参考:https://opencv.org/releases/ */ public class OpenCVQrCodePosition { private boolean isDebug = true; static { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); } // 获取二维码图片位置信息 public Point[] getPosition(String imgUrl){ Mat src = Imgcodecs.imread(imgUrl ,1); Mat src_gray = new Mat(); List contours = new ArrayList(); //彩色图转灰度图 Imgproc.cvtColor(src ,src_gray ,Imgproc.COLOR_RGB2GRAY); //对图像进行平滑处理 Imgproc.GaussianBlur(src_gray, src_gray, new Size(3,3), 0); this.printImg("1-1.jpg", src_gray); Imgproc.Canny(src_gray,src_gray,112,255); this.printImg("1-2.jpg", src_gray); Mat hierarchy = new Mat(); // 寻找轮廓 Imgproc.findContours(src_gray ,contours ,hierarchy ,Imgproc.RETR_TREE ,Imgproc.CHAIN_APPROX_NONE); List markContours = this.markContour(src_gray, contours, hierarchy); markContours = this.filterByAngle(markContours); Point[] points = this.centerCals(markContours); if(points != null){ this.cutRect(src, points, 12); } return points; } // 裁剪指定区域 public BufferedImage cutRect(Mat src,Point[] points, int offset){ if(points == null || points.length


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有