- Opus编解码协议入门
弱冠少年
嵌入式软件嵌入式硬件
主要参考资料:走进音视频的世界——Opus编解码协议:https://blog.csdn.net/u011686167/article/details/126647876目录1.简介2.码率与音质、延时的关系2.1音质与码率比较2.2码率与延时对比3.Opus编解码框架4.DTX非连续传输5.FEC前向纠错1.简介Opus是一种开源免费的音频编解码器,支持音乐和语音,具有低延时、带内FEC、DTX
- 图像效果的一些专业测试工具和指标:
追心嵌入式
C语言测试工具音视频
图像效果的一些专业测试工具和指标:1,色卡:色卡是行业通用的,也是标准的,一般相机出图后会与色卡对比,来衡量是否发生了色偏,颜色还原度,失真度的差异。2,图像测试卡,一般是来测试图像中心和四角的清晰度的。测试方法,用摄像头对着图纸,使摄像头中看到图纸占满,即可测试。3,灰阶值:是反应了该相机对图像灰阶值的解析度。4,帧率,码率,分辨率H264/5i帧间隔。这些指标可以通过potplayer去看,一
- 嵌入式音视频开发——视频篇(三)
程序猿玖月柒
音视频音视频
本笔记来源于学习韦东山团队课程,自己选择性摘抄加深记忆和学习的效果。帧率与时间戳帧率(framerate)是指视频播放中每秒显示的图像帧数。测量单位为“每秒显示帧数”(framepersecond,FPS)或“赫兹”,一般来说FPS用于描述影片、电子绘图或游戏每秒播放多少帧。人类视觉的时间敏感性和分辨率根据视觉刺激的类型和特征而变化,并且在个体之间是不同的。由于人类眼睛的特殊生理结构,如果所看画面
- 视频行为分析系统,可做安全行为检测,比如周界入侵,打架
winxp-pic
音视频安全
基于视频行为分析系统v4系列版本可以在不用考虑流媒体音视频开发,编解码开发,界面开发等情况下,只需要训练自己的模型,开发自己的行为算法插件,就可以轻松开发出任何你想要的安全行为检测,比如周界入侵,打架,斗殴,跌倒,人群聚集,离岗睡岗,安全帽检测,充电桩,工作服,疲劳检测,交通拥堵等等。从v4.24版本开始,该软件已经支持Windows10,Windows11,Ubuntu20,Ubuntu21,U
- vue视频流播放,支持多种视频格式,如rmvb、mkv
BigData-0
vue.js前端javascript
先将视频转码为tsffmpeg-iC:\test\3.rmvb-codec:copy-start_number0-hls_time10-hls_list_size0-fhlsC:\test\a\output.m3u8后端配置接口importorg.springframework.core.io.Resource;importorg.springframework.core.io.UrlResour
- 使用基于 WebRTC 的 JavaScript API 在浏览器环境里调用本机摄像头
Python中的class体内定义方法时,如果没有显式地包含self参数,有时候依然可以被调用。这是一个非常有趣的话题,因为它涉及到对Python中类与对象之间关系的更深理解。要理解为什么这种情况下方法依然能够被调用,我们需要逐步拆解Python类的构造方式以及方法绑定的原理。
- 【CV】25.1.7 arxiv更新速递
hinmer
arxivCV每日更新python人工智能计算机视觉chatgpt目标检测aiAIGC
—第1篇----关键词:手势识别,计算机视觉,低光照条件,机器学习,RaspberryPi,OpenCV论文链接-摘要:手势识别是一种基于计算机视觉技术的感知用户界面,允许计算机将人类动作解释为命令,使用户无需使用手与计算机交流,从而使鼠标和键盘变得多余。手势识别的主要弱点是光线条件,因为手势控制依赖于摄像头。摄像头用于在2D和3D中解释手势,因此提取的信息可能因光源而异。系统的限制是无法在黑暗环
- VideoFileClip 获取视频报错、
Tomorrow'sThinker
音视频moviepy
报错内容:OSError:MoviePyerror:failedtoreadthedurationoffile/mnt/data/test/monitor/videos/new_video/1652063723941.mkv.Herearethefileinfosreturnedbyffmpeg:ffmpegversion4.2.2-statichttps://johnvansickle.com/
- 【python进阶】txt excel pickle opencv操作demo
闪闪发亮的小星星
AI算法工程师打怪pythonexcelopencv
文章目录1.txt读写读综合案例日志文件读写2.excel读写读取csv读取xlsx3.matplotlib案例折线图多个折现图散点图柱状图饼状图4opencv案例加载与展示图片缩放图片旋转图片保存图片读取摄像头视频保存opencv综合案例5pickle案例1.txt读写读file.read()file.readlines()file.readline()##使用'read'方法读取文件的所有内容
- 25.FFmpeg学习笔记 - 用libavfilter转换原始音频格式2
whoyouare888
FFmpeg
本文用libavfilter的另一种方法来转换原始音频格式,见代码。#include#include#include#include#include"libavutil/channel_layout.h"#include"libavutil/md5.h"#include"libavutil/mem.h"#include"libavutil/opt.h"#include"libavutil/samp
- android+ffmpeg库使用教程,适用于Android的ffmpeg(使用教程:“ ffmpeg和Android.mk”)...
OF COURSE想当然
我正在尝试为Android编译ffmpeg。我已经找到了关于该主题的几篇文章,但似乎都没有。如果尝试构建ffmpeg,它会发布在[1]上。是否有人使用这些教程成功编译了ffmpeg?我不确定如何实现步骤4到5。STEP4:配置...步骤5:CD到您的NDK根目录,键入makeTARGET_ARCH=armAPP=ffmpeg-org在我看来,按照第5步的教程中的说明构建类似的应用程序需要一些先前的
- Android Studio中使用FFmpeg动态库
Getnway
AndroidFFmpegNDKandroidffmpegandroidstudio动态库
使用FFmpeg动态库本文借鉴最简单的基于FFmpeg的移动端例子:AndroidHelloWorld,并介绍在AndroidStudio中的实现。项目地址:https://github.com/Getnway/FFmpegDemo本文介绍的是用NDK编译动态库,并在AndroidStudio中调用的步骤。准备项目需要有FFmpeg的动态库,如下文件(版本可以不同)。FFmpeg动态库编译参考Li
- ffmpeg学习六:avcodec_open2函数源码分析
阳光玻璃杯
ffmpegffmpeg源码codecopen
上一节我们尝试分析了avformat_open_input函数的源码,这个函数的虽然比较复杂,但是它基本是围绕着创建和初始化一些数据结构来展开的,比如,avformat_open_input函数会创建和初始化AVFormatContext,AVClass,AVOption,URLContext,URLProtocol,AVInputFormat,AVStream等数据结构,这些数据结构的关系如下:
- Android 使用FFmpeg静态库
萌猫闯世界
FFmpegffmpegandroid
FFmpeg编译生成.a静态库译环境:Linux环境(Ubuntu14.04,x86_64)NDK版本(android-ndk-r17c)FFmpeg版本(ffmpeg-4.0.1):编写编译脚本:#!/bin/bashNDK=/home/qcg/android-ndk-r20bTOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64API=21fu
- VS环境下调用ffmpeg库
daqinzl
visualstudioffmpeg
参考链接https://blog.csdn.net/lizhong2008/article/details/136692070
- 关于av_get_channel_layout_nb_channels函数
FancySuMMer11
qtffmpeg
问题:ffmpeg5.1使用av_get_channel_layout_nb_channels函数时报错。过程:经过检查,发现对应头文件内已经不包含该函数。遂查找资料,发现在ffmpeg5.1之后该函数被废弃,具体而言,新增了AVChannelLayout。av_get_channel_layout_nb_channels(),useAVChannelLayout.nb_channelsinste
- 基于Python的三种主流网络爬虫技术
吃肉肉335
python爬虫开发语言
一、网络爬虫是什么网络爬虫,通常也被称为网络蜘蛛或网络机器人,是一种按照一定方法,获取网络各种信息的自动化脚本程序,也可以将其理解为一个在互联网上自动提取网页信息并进行解析抓取的程序。网络爬虫的功能不仅局限于复制网页内容、下载音视频文件,更包括自动化执行行为链以及模拟用户登录等复杂操作。在当前大数据背景下,无论是人工智能应用还是数据分析工作,均依赖于海量的数据支持。如果仅依赖人工采集这一种方式,不
- face-kkk
山山而川_R
face深度学习
目录一、配置环境1、新建虚拟环境2、配置环境安装包3、下载安装使用环境二、注册新人1、采集照片2、注册新人3、测试视频或摄像头三、配置文件config1、项目配置文件configs/configs.py,用于设置人脸检测模型,特征提取模型二、下面是自己测试用(个人的一个记录,不具备参考意义)MTCNN人脸检测参考项目:GitHub-Sierkinhane/mtcnn-pytorch:Afacede
- Ubuntu 下访问摄像头 及将摄像头数据重定向到http协议 远程访问摄像头
chn89
Linux
本文的主要工作是ubuntu下打开摄像头,保存图片及视频,以及将视频流搬到网络上,远程访问之。两个目的,第一是手头现有树霉派,但是没有摄像头模块,所以就以笔记本来做实验,最终想法是树霉派连接摄像头模块作为一个远程网络视频监控器。第二,是安卓或者IOS装个支持视频流的播放器,就可以打开上述远程视频监控器了1打开摄像头为了访问摄像头,需要安装cheese软件。sudoapt-getinstallche
- 基于 FFMPEG 的视频编码(libavcodec ,致敬雷霄骅)
liyuanbhu
Qt编程技术音视频qt开发语言
基于FFMPEG的视频编码(libavcodec,致敬雷霄骅)本文参考了雷博士的博客:最简单的基于FFmpeg的视频编码器-更新版(YUV编码为HEVC(H.265))还参考了另一篇博客:Qt与FFmpeg联合开发指南(三)——编码(1):代码流程演示在为了代码简洁,代码中还用到了Qt。先不讲解具体的实现代码。大家先看看我封装后的类的使用方法。下面是一个简单的例子。这个例子先生成了一些QImage
- 利用ffmpeg将视频转为m3u8并加密
daqinzl
流媒体视频音频ffmpegffmpegm3u8加密解密openssl
参考链接https://openatomworkshop.csdn.net/67457b7e3a01316874d8a2aa.html
- 【CicadaPlayer】ffmpeg内部头文件引用出错
等风来不如迎风去
媒体播放器设计与实现音视频
头文件引用出现的问题3>G:\LLPP\RTCPLAYER\CicadaPlayerNBS\3rdparty\4.0\code\ffmpeg\libavcodec\x86\mathops.h(38,13
- FFMPEG: [ 知识点 ] >对libavcodec依赖的模块--持续更新
总是春
ffmpegffmpeg
依赖libavcodec:h264_mp4toannexb_bsfaac_parserh264_parser
- FFmpeg 头文件完美翻译之 libavcodec 模块
Leon_Chenl
ffmpegffmpeglibavcodecc音视频视频编解码
前言众所周知,FFmpeg的代码开发上手难度较高,源于官方提供的文档很少有包含代码教程相关的。要想熟练掌握FFmpeg的代码库开发,需要借助它的头文件,FFmpeg把很多代码库教程都写在头文件里面。因此,熟读头文件的内容很重要,为此,我对FFmpeg6.x版本的头文件进行了翻译,方便大家阅读理解。相信我,通读一遍头文件的注释后,你的FFmpeg的代码库开发技能将更上一层。本文适用于有FFmpeg代
- 学习记录:OpenMV 摄像头的一个简单示例,主要实现了对摄像头的基本设置和图像采集,并计算和显示采集图像的帧率。
DIY机器人工房
openmv学习笔记学习opencvpython
代码解释:整体功能:此代码是使用OpenMV摄像头的一个简单示例,主要实现了对摄像头的基本设置和图像采集,并计算和显示采集图像的帧率。首先,对摄像头进行初始化,包括重置、设置像素格式和帧大小,并等待设置生效。然后创建一个时间对象用于计算帧率。最后在一个无限循环中不断采集图像并打印出每秒采集的帧数。#此作品遵循MIT许可证授权。#版权所有(c)2013-2023OpenMVLLC。保留所有权利。#h
- RK3568平台(camera篇)音视频基础知识
嵌入式_笔记
瑞芯微音视频
一.音视频为什么要编码?音视频编码技术在音视频领域有着举足轻重的地位,这是由于音视频原始数据量较大,在传输的过程中如果不进行编码的话,则无法进行传输。比方说,一张普通的图片的大小大概是1-2M,假设我们传输的帧率是30帧,则相当于一秒钟三十张2M的图片,那这个传输量是不得了的。所以此时我们就要引入视频编码技术进行压缩处理,目前常见的视频压缩技术有H264/H265两种压缩技术(这方面我们后面再慢慢
- 使用 Python结合ffmpeg 实现单线程和多线程推流
浪浪山小白兔
pythonffmpegopencv
一、引言在本文中,我们将详细介绍如何使用Python进行视频的推流操作。我们将通过两个不同的实现方式,即单线程推流和多线程推流,来展示如何利用cv2(OpenCV)和subprocess等库将视频帧推送到指定的RTMP地址。这两种方式都涉及到从摄像头读取视频帧,以及使用ffmpeg命令行工具将视频帧进行编码和推流的过程。二、单线程推流以下是单线程推流的代码:importcv2ascvimports
- RK3568笔记七十六:使用V4L2框架录制MP4视频保存到本地
殷忆枫
RK3568学习笔记笔记
若该文为原创文章,转载请注明原文出处。录制MP4使用的是ffmpeg,如何编译自行处理。使用的是正点原子的RK3568测试,其他板子自行调试。一、程序功能介绍说明:程序参考FFMPEG提供的例子程序muxing.c进行修改。功能介绍:程序里目前有一个子线程和一个主线程,子线程通过linux标准的V4L2框架读取摄像头数据(NV12);然后把NV12数据转换为YUV420P格式(H264必须使用该格
- pythonAI算法中使用ffmpeg推流记录
脱僵的的野码
ffmpeg网络
首先呢需求是这样的需要在远端播放检测的画面这个事情解决的思路1.用的网络摄像头,将摄像头的流推到rtmp1流地址2.项目中的输入流就是rtmp1的地址视频流3.开始对视频各种检测,检测后将帧的frame推到rtmp24.随便找个播放器去播放rtmp2的流期间遇到了一些问题就是推上去的流在远端播放就直接裂开了大概4秒一卡顿,后来发现是ffmpg-r参数默认值是25我的frame推上去的流fps才11
- 算法项目实时推流
zk_ken
php开发语言
1、搭建流媒体服务器下载mediamtx2、视频流直推ffmpeg-stream_loop-1-iDJI_20250109112715_0002_W.MP4-r30-c:vlibx264-presetultrafast-fflvrtmp://192.168.100.20:1935/live/test_chengdu13、硬件加速如果硬件支持,可以使用硬件加速编码器(如h264_nvenc、h264
- Java序列化进阶篇
g21121
java序列化
1.transient
类一旦实现了Serializable 接口即被声明为可序列化,然而某些情况下并不是所有的属性都需要序列化,想要人为的去阻止这些属性被序列化,就需要用到transient 关键字。
- escape()、encodeURI()、encodeURIComponent()区别详解
aigo
JavaScriptWeb
原文:http://blog.sina.com.cn/s/blog_4586764e0101khi0.html
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:,decodeURI,decodeURIComponent 。
下面简单介绍一下它们的区别
1 escape()函
- ArcgisEngine实现对地图的放大、缩小和平移
Cb123456
添加矢量数据对地图的放大、缩小和平移Engine
ArcgisEngine实现对地图的放大、缩小和平移:
个人觉得是平移,不过网上的都是漫游,通俗的说就是把一个地图对象从一边拉到另一边而已。就看人说话吧.
具体实现:
一、引入命名空间
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Controls;
二、代码实现.
- Java集合框架概述
天子之骄
Java集合框架概述
集合框架
集合框架可以理解为一个容器,该容器主要指映射(map)、集合(set)、数组(array)和列表(list)等抽象数据结构。
从本质上来说,Java集合框架的主要组成是用来操作对象的接口。不同接口描述不同的数据类型。
简单介绍:
Collection接口是最基本的接口,它定义了List和Set,List又定义了LinkLi
- 旗正4.0页面跳转传值问题
何必如此
javajsp
跳转和成功提示
a) 成功字段非空forward
成功字段非空forward,不会弹出成功字段,为jsp转发,页面能超链接传值,传输变量时需要拼接。接拼接方式list.jsp?test="+strweightUnit+"或list.jsp?test="+weightUnit+&qu
- 全网唯一:移动互联网服务器端开发课程
cocos2d-x小菜
web开发移动开发移动端开发移动互联程序员
移动互联网时代来了! App市场爆发式增长为Web开发程序员带来新一轮机遇,近两年新增创业者,几乎全部选择了移动互联网项目!传统互联网企业中超过98%的门户网站已经或者正在从单一的网站入口转向PC、手机、Pad、智能电视等多端全平台兼容体系。据统计,AppStore中超过85%的App项目都选择了PHP作为后端程
- Log4J通用配置|注意问题 笔记
7454103
DAOapachetomcatlog4jWeb
关于日志的等级 那些去 百度就知道了!
这几天 要搭个新框架 配置了 日志 记下来 !做个备忘!
#这里定义能显示到的最低级别,若定义到INFO级别,则看不到DEBUG级别的信息了~!
log4j.rootLogger=INFO,allLog
# DAO层 log记录到dao.log 控制台 和 总日志文件
log4j.logger.DAO=INFO,dao,C
- SQLServer TCP/IP 连接失败问题 ---SQL Server Configuration Manager
darkranger
sqlcwindowsSQL ServerXP
当你安装完之后,连接数据库的时候可能会发现你的TCP/IP 没有启动..
发现需要启动客户端协议 : TCP/IP
需要打开 SQL Server Configuration Manager...
却发现无法打开 SQL Server Configuration Manager..??
解决方法: C:\WINDOWS\system32目录搜索framedyn.
- [置顶] 做有中国特色的程序员
aijuans
程序员
从出版业说起 网络作品排到靠前的,都不会太难看,一般人不爱看某部作品也是因为不喜欢这个类型,而此人也不会全不喜欢这些网络作品。究其原因,是因为网络作品都是让人先白看的,看的好了才出了头。而纸质作品就不一定了,排行榜靠前的,有好作品,也有垃圾。 许多大牛都是写了博客,后来出了书。这些书也都不次,可能有人让为不好,是因为技术书不像小说,小说在读故事,技术书是在学知识或温习知识,有些技术书读得可
- document.domain 跨域问题
avords
document
document.domain用来得到当前网页的域名。比如在地址栏里输入:javascript:alert(document.domain); //www.315ta.com我们也可以给document.domain属性赋值,不过是有限制的,你只能赋成当前的域名或者基础域名。比如:javascript:alert(document.domain = "315ta.com");
- 关于管理软件的一些思考
houxinyou
管理
工作好多看年了,一直在做管理软件,不知道是我最开始做的时候产生了一些惯性的思维,还是现在接触的管理软件水平有所下降.换过好多年公司,越来越感觉现在的管理软件做的越来越乱.
在我看来,管理软件不论是以前的结构化编程,还是现在的面向对象编程,不管是CS模式,还是BS模式.模块的划分是很重要的.当然,模块的划分有很多种方式.我只是以我自己的划分方式来说一下.
做为管理软件,就像现在讲究MVC这
- NoSQL数据库之Redis数据库管理(String类型和hash类型)
bijian1013
redis数据库NoSQL
一.Redis的数据类型
1.String类型及操作
String是最简单的类型,一个key对应一个value,string类型是二进制安全的。Redis的string可以包含任何数据,比如jpg图片或者序列化的对象。
Set方法:设置key对应的值为string类型的value
- Tomcat 一些技巧
征客丶
javatomcatdos
以下操作都是在windows 环境下
一、Tomcat 启动时配置 JAVA_HOME
在 tomcat 安装目录,bin 文件夹下的 catalina.bat 或 setclasspath.bat 中添加
set JAVA_HOME=JAVA 安装目录
set JRE_HOME=JAVA 安装目录/jre
即可;
二、查看Tomcat 版本
在 tomcat 安装目
- 【Spark七十二】Spark的日志配置
bit1129
spark
在测试Spark Streaming时,大量的日志显示到控制台,影响了Spark Streaming程序代码的输出结果的查看(代码中通过println将输出打印到控制台上),可以通过修改Spark的日志配置的方式,不让Spark Streaming把它的日志显示在console
在Spark的conf目录下,把log4j.properties.template修改为log4j.p
- Haskell版冒泡排序
bookjovi
冒泡排序haskell
面试的时候问的比较多的算法题要么是binary search,要么是冒泡排序,真的不想用写C写冒泡排序了,贴上个Haskell版的,思维简单,代码简单,下次谁要是再要我用C写冒泡排序,直接上个haskell版的,让他自己去理解吧。
sort [] = []
sort [x] = [x]
sort (x:x1:xs)
| x>x1 = x1:so
- java 路径 配置文件读取
bro_feng
java
这几天做一个项目,关于路径做如下笔记,有需要供参考。
取工程内的文件,一般都要用相对路径,这个自然不用多说。
在src统计目录建配置文件目录res,在res中放入配置文件。
读取文件使用方式:
1. MyTest.class.getResourceAsStream("/res/xx.properties")
2. properties.load(MyTest.
- 读《研磨设计模式》-代码笔记-简单工厂模式
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* 个人理解:简单工厂模式就是IOC;
* 客户端要用到某一对象,本来是由客户创建的,现在改成由工厂创建,客户直接取就好了
*/
interface IProduct {
- SVN与JIRA的关联
chenyu19891124
SVN
SVN与JIRA的关联一直都没能装成功,今天凝聚心思花了一天时间整合好了。下面是自己整理的步骤:
一、搭建好SVN环境,尤其是要把SVN的服务注册成系统服务
二、装好JIRA,自己用是jira-4.3.4破解版
三、下载SVN与JIRA的插件并解压,然后拷贝插件包下lib包里的三个jar,放到Atlassian\JIRA 4.3.4\atlassian-jira\WEB-INF\lib下,再
- JWFDv0.96 最新设计思路
comsci
数据结构算法工作企业应用公告
随着工作流技术的发展,工作流产品的应用范围也不断的在扩展,开始进入了像金融行业(我已经看到国有四大商业银行的工作流产品招标公告了),实时生产控制和其它比较重要的工程领域,而
- vi 保存复制内容格式粘贴
daizj
vi粘贴复制保存原格式不变形
vi是linux中非常好用的文本编辑工具,功能强大无比,但对于复制带有缩进格式的内容时,粘贴的时候内容错位很严重,不会按照复制时的格式排版,vi能不能在粘贴时,按复制进的格式进行粘贴呢? 答案是肯定的,vi有一个很强大的命令可以实现此功能 。
在命令模式输入:set paste,则进入paste模式,这样再进行粘贴时
- shell脚本运行时报错误:/bin/bash^M: bad interpreter 的解决办法
dongwei_6688
shell脚本
出现原因:windows上写的脚本,直接拷贝到linux系统上运行由于格式不兼容导致
解决办法:
1. 比如文件名为myshell.sh,vim myshell.sh
2. 执行vim中的命令 : set ff?查看文件格式,如果显示fileformat=dos,证明文件格式有问题
3. 执行vim中的命令 :set fileformat=unix 将文件格式改过来就可以了,然后:w
- 高一上学期难记忆单词
dcj3sjt126com
wordenglish
honest 诚实的;正直的
argue 争论
classical 古典的
hammer 锤子
share 分享;共有
sorrow 悲哀;悲痛
adventure 冒险
error 错误;差错
closet 壁橱;储藏室
pronounce 发音;宣告
repeat 重做;重复
majority 大多数;大半
native 本国的,本地的,本国
- hibernate查询返回DTO对象,DTO封装了多个pojo对象的属性
frankco
POJOhibernate查询DTO
DTO-数据传输对象;pojo-最纯粹的java对象与数据库中的表一一对应。
简单讲:DTO起到业务数据的传递作用,pojo则与持久层数据库打交道。
有时候我们需要查询返回DTO对象,因为DTO
- Partition List
hcx2013
partition
Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.
You should preserve the original relative order of th
- Spring MVC测试框架详解——客户端测试
jinnianshilongnian
上一篇《Spring MVC测试框架详解——服务端测试》已经介绍了服务端测试,接下来再看看如果测试Rest客户端,对于客户端测试以前经常使用的方法是启动一个内嵌的jetty/tomcat容器,然后发送真实的请求到相应的控制器;这种方式的缺点就是速度慢;自Spring 3.2开始提供了对RestTemplate的模拟服务器测试方式,也就是说使用RestTemplate测试时无须启动服务器,而是模拟一
- 关于推荐个人观点
liyonghui160com
推荐系统关于推荐个人观点
回想起来,我也做推荐了3年多了,最近公司做了调整招聘了很多算法工程师,以为需要多么高大上的算法才能搭建起来的,从实践中走过来,我只想说【不是这样的】
第一次接触推荐系统是在四年前入职的时候,那时候,机器学习和大数据都是没有的概念,什么大数据处理开源软件根本不存在,我们用多台计算机web程序记录用户行为,用.net的w
- 不间断旋转的动画
pangyulei
动画
CABasicAnimation* rotationAnimation;
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
rotationAnimation.toValue = [NSNumber numberWithFloat: M
- 自定义annotation
sha1064616837
javaenumannotationreflect
对象有的属性在页面上可编辑,有的属性在页面只可读,以前都是我们在页面上写死的,时间一久有时候会混乱,此处通过自定义annotation在类属性中定义。越来越发现Java的Annotation真心很强大,可以帮我们省去很多代码,让代码看上去简洁。
下面这个例子 主要用到了
1.自定义annotation:@interface,以及几个配合着自定义注解使用的几个注解
2.简单的反射
3.枚举
- Spring 源码
up2pu
spring
1.Spring源代码
https://github.com/SpringSource/spring-framework/branches/3.2.x
注:兼容svn检出
2.运行脚本
import-into-eclipse.bat
注:需要设置JAVA_HOME为jdk 1.7
build.gradle
compileJava {
sourceCompatibilit
- 利用word分词来计算文本相似度
yangshangchuan
wordword分词文本相似度余弦相似度简单共有词
word分词提供了多种文本相似度计算方式:
方式一:余弦相似度,通过计算两个向量的夹角余弦值来评估他们的相似度
实现类:org.apdplat.word.analysis.CosineTextSimilarity
用法如下:
String text1 = "我爱购物";
String text2 = "我爱读书";
String text3 =