资源简介

Java简单实现类似“全能扫描王”的功能,使用OpenCV实现。项目中包含了opencv_java343.dll动态链接库,在dll文件夹中,需要在eclipse中引入

资源截图

代码片段和文件信息

package com.rwzhang.imageExtract;
import static com.rwzhang.imageExtract.constants.Constants.PI;
import static com.rwzhang.imageExtract.constants.Constants.TMP_FOLDER;
import static com.rwzhang.imageExtract.utils.Utils.output;

import java.util.ArrayList;
import java.util.List;

import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.MatOfPoint;
import org.opencv.core.MatOfPoint2f;
import org.opencv.core.Point;
import org.opencv.core.RotatedRect;
import org.opencv.core.Scalar;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

import com.rwzhang.imageExtract.entity.VertexAngle;
import com.rwzhang.imageExtract.utils.ImageUtil;

/**
 * 
 * @author rwzhang
 *
 */
public class Extract {

public void extract(String input String output){
int i = 1;
Mat src = Imgcodecs.imread(input);
Mat dst = new Mat();
//Imgproc.pyrMeanShiftFiltering(src dst 50 10);//均值偏移
//output(TMP_FOLDER + “/0_meanshift.jpg“ dst);

Mat kernel = new Mat(3 3 CvType.CV_32Fnew Scalar(-1)); 
kernel.put(1 1 8.9);
Imgproc.filter2D(src dst src.depth()kernel);//锐化
output(TMP_FOLDER + “/“ + (i++) + “_sharpening.jpg“ dst);

Imgproc.cvtColor(dst dst Imgproc.COLOR_RGB2GRAY);//灰度化
output(TMP_FOLDER + “/“ + (i++) + “_gray.jpg“ dst);

//Imgproc.equalizeHist(dst dst);//直方图均衡化
//output(TMP_FOLDER + “/“ + (i++) + “_equalizeHist.jpg“ dst);

ImageUtil.gammaCorrection(dst dst 0.8f);//gamma校正
output(TMP_FOLDER + “/“ + (i++) + “_gamma.jpg“ dst);

Imgproc.GaussianBlur(dst dst new Size(5 5) 0 0);//高斯滤波
output(TMP_FOLDER + “/“ + (i++) + “_gaussianBlur.jpg“ dst);

Imgproc.threshold(dst dst 0 255 Imgproc.THRESH_OTSU + Imgproc.THRESH_BINARY);//二值化
output(TMP_FOLDER + “/“ + (i++) + “_thresholding.jpg“ dst);

Mat element = Imgproc.getStructuringElement(Imgproc.MORPH_RECT new Size(3 3));

//Imgproc.dilate(dst dst element);//膨胀
//output(TMP_FOLDER + “/“ + (i++) + “_dilate.jpg“ dst);

Imgproc.morphologyEx(dst dst Imgproc.MORPH_CLOSE element);//闭运算
output(TMP_FOLDER + “/“ + (i++) + “_morph_close.jpg“ dst);

Imgproc.erode(dst dst element);//腐蚀
output(TMP_FOLDER + “/“ + (i++) + “_erode.jpg“ dst);

Imgproc.Canny(dst dst 30 120 3);//边缘检测
output(TMP_FOLDER + “/“ + (i++) + “_canny.jpg“ dst);

//查找轮廓
List f_contours = new ArrayList();
Mat hierarchy = new Mat(); 
Imgproc.findContours(dst f_contours hierarchy Imgproc.RETR_EXTERNAL Imgproc.CHAIN_APPROX_NONE);

//加粗增强所有找到的轮廓
Imgproc.drawContours(dst f_contours -1 new Scalar(255) 3);
output(TMP_FOLDER + “/“ + (i++) + “_strong.jpg“ dst);

//Imgproc.erode(dst dst element);//腐蚀
//output(TMP_FOLDER + “/“ + (i++) + “_erode.jpg“ dst);

//再次查找轮廓
f_contours.clear();
hierarchy = new Mat(); 
Imgproc.findContours(dst f_contours hie

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-12-27 21:31  ImageExtract\
     文件        1133  2018-12-27 19:47  ImageExtract\.classpath
     文件         564  2018-12-27 19:26  ImageExtract\.project
     目录           0  2018-12-27 19:26  ImageExtract\.settings\
     文件         119  2018-12-27 19:26  ImageExtract\.settings\org.eclipse.core.resources.prefs
     文件         243  2018-12-27 19:26  ImageExtract\.settings\org.eclipse.jdt.core.prefs
     文件          90  2018-12-27 19:26  ImageExtract\.settings\org.eclipse.m2e.core.prefs
     目录           0  2018-12-27 19:46  ImageExtract\dll\
     文件    47162368  2018-12-18 14:45  ImageExtract\dll\opencv_java343.dll
     文件         949  2018-12-27 19:28  ImageExtract\pom.xml
     目录           0  2018-12-30 18:06  ImageExtract\res\
     文件     3433300  2018-12-26 09:19  ImageExtract\res\1.jpg
     文件     1490563  2018-12-30 15:10  ImageExtract\res\10.jpg
     文件      179273  2018-12-26 10:09  ImageExtract\res\2.png
     文件       15668  2018-12-28 10:07  ImageExtract\res\6.jpg
     文件       25579  2018-12-28 11:04  ImageExtract\res\8.jpg
     目录           0  2018-12-27 19:26  ImageExtract\src\
     目录           0  2018-12-27 19:26  ImageExtract\src\main\
     目录           0  2018-12-27 19:26  ImageExtract\src\main\java\
     目录           0  2018-12-27 19:26  ImageExtract\src\main\java\com\
     目录           0  2018-12-27 19:27  ImageExtract\src\main\java\com\rwzhang\
     目录           0  2018-12-30 16:36  ImageExtract\src\main\java\com\rwzhang\imageExtract\
     文件        8482  2018-12-30 17:42  ImageExtract\src\main\java\com\rwzhang\imageExtract\Extract.java
     文件        9048  2018-12-30 16:42  ImageExtract\src\main\java\com\rwzhang\imageExtract\Extract2.java
     文件         406  2018-12-30 18:05  ImageExtract\src\main\java\com\rwzhang\imageExtract\Main.java
     目录           0  2018-12-27 19:33  ImageExtract\src\main\java\com\rwzhang\imageExtract\constants\
     文件         229  2018-12-27 20:24  ImageExtract\src\main\java\com\rwzhang\imageExtract\constants\Constants.java
     目录           0  2018-12-29 17:05  ImageExtract\src\main\java\com\rwzhang\imageExtract\entity\
     文件        1038  2018-12-29 11:59  ImageExtract\src\main\java\com\rwzhang\imageExtract\entity\Area.java
     文件        1395  2018-12-30 16:49  ImageExtract\src\main\java\com\rwzhang\imageExtract\entity\AreaLines.java
     文件        4126  2018-12-30 16:53  ImageExtract\src\main\java\com\rwzhang\imageExtract\entity\LineGroup.java
............此处省略57个文件信息

评论

共有 条评论