王兵 2 years ago
parent 91b3b0bbc0
commit 65f0e840d1

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>TestOpenCV</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<!--<packaging>war</packaging>--><!--需要打包成war时放开-->
<name>example-web</name>
<description>project for Spring Boot</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<maven.test.skip>true</maven.test.skip>
<spring-boot.version>2.3.7.RELEASE</spring-boot.version>
<spring-cloud.version>Hoxton.SR8</spring-cloud.version>
</properties>
<repositories>
<!-- 将中央仓库地址指向阿里云聚合仓库,提高下载速度 -->
<repository>
<id>central</id>
<name>Central Repository</name>
<layout>default</layout>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
<pluginRepositories>
<!-- 将插件的仓库指向阿里云聚合仓库解决低版本maven下载插件异常或提高下载速度 -->
<pluginRepository>
<id>central</id>
<name>Central Repository</name>
<url>https://maven.aliyun.com/repository/public</url>
<layout>default</layout>
</pluginRepository>
</pluginRepositories>
<dependencies>
<dependency>
<groupId>com.opencv</groupId>
<artifactId>opencv</artifactId>
<version>0.0.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/opencv-460.jar</systemPath>
</dependency>
</dependencies>
<build>
<!-- 项目名称 -->
<finalName>${artifactId}-${version}</finalName>
<!-- 默认的主代码目录 -->
<sourceDirectory>src/main/java</sourceDirectory>
<!-- 默认的测试代码目录 -->
<testSourceDirectory>src/test/java</testSourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<!-- 包含java下的xml文件 -->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*Mapper.xml</include>
</includes>
</resource>
<!-- 包含lib中所有jar包 -->
<resource>
<directory>${basedir}/src/main/resources/lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>*.jar</include>
</includes>
</resource>
<!-- 启动bat -->
<resource>
<directory>${basedir}/src/main/resources/部署文档</directory>
<includes>
<include>*.bat</include>
<include>*.sh</include>
</includes>
<targetPath>${basedir}/target/部署文档</targetPath>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>${project.basedir}/src/main/resources/lib</directory>
<targetPath>WEB-INF/lib</targetPath>
<includes>
<include>*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
</project>

@ -0,0 +1,115 @@
import org.opencv.core.*;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
public class Test {
static {
URL systemResource = ClassLoader.getSystemResource("lib/x64/opencv_java460.dll");
System.load(systemResource.getPath());
// System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
//注意程序运行的时候需要在VM option添加该行 指明opencv的dll文件所在路径
//-Djava.library.path=$PROJECT_DIR$\opencv\x64
}
public static void main(String[] args) {
/*
* IMREAD_UNCHANGED = -1 1616
* IMREAD_GRAYSCALE = 0 168CV_8UC1
* IMREAD_COLOR = 1
* IMREAD_ANYDEPTH = 2 161632328
* IMREAD_ANYCOLOR = 4
* IMREAD_LOAD_GDAL = 8 使GDALGDAL(Geospatial Data Abstraction
* Library)X/MIT
*
*/
File file = new File("D://1.png");
Mat src = Imgcodecs.imread(file.getAbsolutePath());
HighGui.imshow("源图片", src);
HighGui.waitKey();
// 放大图像
// Mat resize = new Mat();
// Imgproc.resize(src, resize, new Size(src.cols()*1.5,src.rows()*1.5));
// HighGui.imshow("放大图片", resize);
// HighGui.waitKey();
//图片灰度化 https://blog.csdn.net/ren365880/article/details/103869207
Mat gary = new Mat();
Imgproc.cvtColor(src, gary, Imgproc.COLOR_BGR2GRAY);
HighGui.imshow("灰度化图片", gary);
HighGui.waitKey();
//图像边缘处理 https://blog.csdn.net/ren365880/article/details/103938232
Mat edges = new Mat();
Imgproc.Canny(gary, edges, 200, 500, 3, false);
HighGui.imshow("边缘处理", edges);
HighGui.waitKey();
//发现轮廓
List<MatOfPoint> list = new ArrayList<MatOfPoint>();
Mat hierarchy = new Mat();
/*
*
* 使CITESuzuki85
* @param image Source810binary使compareinRange
* thresholdadaptiveThresholdCanny#RETR_CCOMP#
* RETR_FLOODFILL32CV_32SC1
* @param
* @param i[i][i] [0][i] [1][i]
* [2][i][3]0-i
* hierarchy [i]
* @param#RetrievalModes
* RETR_EXTERNAL = 0,
* RETR_LIST = 1,
* RETR_CCOMP = 2,
* RETR_TREE = 3,
* RETR_FLOODFILL = 4; 使CV_32SC1
* Mat dst = new Mat();
* edges.convertTo(dst,CvType.CV_32SC1);
* @param#ContourApproximationModesROI
* CHAIN_APPROX_NONE = 1,contours
* CHAIN_APPROX_SIMPLE = 2,contours线
* CHAIN_APPROX_TC89_L1 = 3,使teh-Chinl chain ;
* CHAIN_APPROX_TC89_KCOS = 4; 使teh-Chinl chain
*/
Imgproc.findContours(edges, list, hierarchy, Imgproc.RETR_TREE, Imgproc.CHAIN_APPROX_NONE);
/*
*
* {thickness}> 0{thickness}<0
* @param
* @param
* @param outlineIdx
* @param color
* @param thickness线thickness =FILLED
* @param lineType线https://blog.csdn.net/ren365880/article/details/103952856
*/
Imgproc.drawContours(src, list, -1, new Scalar(0, 255, 0), 1, Imgproc.LINE_AA);
HighGui.imshow("轮廓", src);
HighGui.waitKey();
//
// // 创建输出单通道图像
// Mat grayImage = new Mat(src.rows(), src.cols(), CvType.CV_8SC1);
// // 进行图像色彩空间转换
// Imgproc.cvtColor(src, grayImage, Imgproc.COLOR_RGB2GRAY);
//
// HighGui.imshow("Processed Image", grayImage);
// Imgcodecs.imwrite("D://2.jpg", grayImage);
// HighGui.waitKey();
System.out.println(src);
}
}
Loading…
Cancel
Save

Powered by TurnKey Linux.