网上的教程多为有项目经验的工程师,在做教程的时候多多少少跳过一些关键的前置操作。不如如何使用mvn 打包 运行等基础的知识,一下子让没基础的接触就比较抓瞎。希望以下攻略能给大家帮助!!

一、打开https://start.spring.io/

二、配置相应数据 导出generate

11.png

三、根据spring boot 向导修改对应的class
222.png
注意:根据sprint boot 的开始向导是不能像它完成呈现的。

https://spring.io/quickstart

四、打开对应的项目 下载相应的依赖进行mvn打包
mvn install

五、配置虚拟机端口号
demosrcmainresources 增加application.yml文件并将代码如下

开发环境配置

server:
  # 服务器的HTTP端口,默认为8080
  port: 8080
  servlet:
    # 应用的访问路径
    context-path: /
  tomcat:
    # tomcat的URI编码
    uri-encoding: UTF-8
    # 连接数满后的排队数,默认为100
    accept-count: 1000
    threads:
      # tomcat最大线程数,默认为200
      max: 800
      # Tomcat启动初始化的线程数,默认值10
      min-spare: 100

六、制作执行脚本 另存为run.bat

@echo off
echo.
echo [信息] 使用Jar命令运行Web工程。
echo.

cd %~dp0
cd ./target

set JAVA_OPTS=-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m

java -jar %JAVA_OPTS% demo-0.0.1-SNAPSHOT.jar

cd bin
pause

见如下即成功
444.png

七、打开浏览器输入http://localhost:8080 会出现404错误 因为首页没有返回,根据第三步的操作 可输入http://localhost:8080/hello 即可有返回
55.png

八.新建clean.bat 用于清理旧的包 每次修改都得清理旧的包 生成新的包

@echo off
echo.
echo [信息] 清理工程target生成路径。
echo.

%~d0
cd %~dp0

call mvn clean

pause

999.png

九、任何修改都得重新打包jar 新建package.bat脚本 代码如下

@echo off
echo.
echo [信息] 打包Web工程,生成war/jar包文件。
echo.

%~d0
cd %~dp0

call mvn clean package -Dmaven.test.skip=true

pause

打包Web工程,生成war/jar包文件。
十、如果你想首页也显示这样好看些 可在DemoApplication.java 增加/的访问方法

0000.png

△重新清理(clean.bat)——编译(package.bat)——运行(run.bat)即可
十一、访问http://localhost:8080/即可看到
11-11.png

demo.rar

代码如下

import cv2
import numpy as np
from datetime import datetime
import time
import os
# 禁用opencv的硬件加速
cv2.setNumThreads(0)
cv2.ocl.setUseOpenCL(False)
# RTSP URL,格式通常是 rtsp://username:password@ip_address:port/stream_path
rtsp_url = 'rtsp://admin:h2331172@192.168.12.82/doc/page/preview.asp'
# 使用cv2.VideoCapture打开RTSP流
cap = cv2.VideoCapture(rtsp_url)
# 增加缓冲区大小
cap.set(cv2.CAP_PROP_BUFFERSIZE, 10)
qrCodeDetector =cv2.QRCodeDetector()
# 视频信息获取
fps = cap.get(cv2.CAP_PROP_FPS)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
# 获取当前工作目录
current_dir = os.getcwd().replace(os.sep, '/')
print('current_dir:',current_dir)
# 使用os.path.join构建保存路径和文件名
save_directory = current_dir + '/images/'
print('save_directory:',save_directory)
if not os.path.exists(save_directory):
    os.makedirs(save_directory)
#当前时间
start_time = time.time()
if not cap.isOpened():
    print("Error: Cannot open video source")
    exit()
while True:
    ret, frame = cap.read()
    if not ret:
        print("Error: Cannot receive frame")
        break
    # ①显示帧 cv2.imread支持读取静态图片
    #show_image=cv2.imshow('IP Camera', frame)
    # ②对帧进行处理,例如转换为灰度图
    gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    show_image=cv2.imshow('Frame', gray_frame)
    #③ 对帧进行图片存储
    # 获取当前日期和时间
    now = datetime.now()
    # 格式化日期和时间
    formatted_time = now.strftime('%Y%m%d%H%M%S')
    (frameState, frame) = cap.read()                # 记录每帧及获取状态
    fileName =str(formatted_time)+'.jpg'   # 存储路径
    save_path = os.path.join(save_directory, fileName)
    if frameState == True:
        cv2.imwrite(save_path,frame,[cv2.IMWRITE_JPEG_QUALITY,100])
        print(fileName+" successfully write in "+save_path) # 输出存储状态
    # 按'q'退出
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
        
# 释放资源和关闭窗口
cap.release()
cv2.destroyAllWindows()