自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

红色与青色

做记录,方便以后查找

  • 博客(149)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 nllb-200-distilled-600M语言缩写对照表

这个模型就是机翻,好处就是不花钱,不用联网,支持语言多,坏处就是翻译质量差,中文资料少,我找了半天才在GitHub上找到对照表凑合着用。

2023-06-13 11:01:13 1347

原创 MySQL获取汉字的拼音首字母并过滤字母符号数字

MySQL获取汉字的拼音首字母网上一堆,都是一样的代码,也不知道是哪个大神写的,我也不打算考据,就说说该方法的不足,当字符串内有字母,符号或数字的时候,就无法获得拼音首字母了,先看看原代码测试一下纯中文没问题,加个字母 问题出现了,这个函数只能转换纯中文的字符串,那怎么能判断中文和非中文呢,通过fristPinyin函数内的ELT函数返回值就可以判断了,可以百度一下ELT函数,最后知道如果是中文fristPinyin会返回拼音首字母,如果不是中文就会返回NULL,那pinyin函数就好改了 可

2022-07-07 14:22:32 510 3

原创 SpringBoot连接多个数据库

idea:IntelliJ IDEA 2022.1.2 (Community Edition)数据库:MySQL依赖:mybatis+mysql+druid连接数据库部分我就不说了,看我这边文章SpringBoot连接数据库修改application.properties创建包xxx.xxx.xxx.mapper.db1和xxx.xxx.xxx.mapper.db2在db1和db2内分别创建DB1Mapper.java和DB2Mapper.java,写入查询语句,查询在不同数据库的两个表再

2022-07-07 10:04:30 4746 1

原创 SpringBoot连接数据库

终于开始自己写后台了,我现在算java全能了吧,android,java gui和java后端,这是我一个人就能开发一个产品的节奏了idea:IntelliJ IDEA 2022.1.2 (Community Edition)数据库:MySQL依赖:mybatis+mysql+druidSpringBoot工程创建就不说了先在pom内引入依赖,版本去https://mvnrepository.com/查在application.properties内配置数据库新建个包,包名自己随便取,比如我的包

2022-07-06 15:37:36 4880

原创 Gradle下载慢或无法下载

由于网络的原因,有些地方连接下载Gradle没问题,有些地方就不行,所以需要想办法解决先说下载,打开文件gradle-wrapper.properties文件,修改distributionUrl把services.gradle.org改成downloads.gradle-dn.com当然这方法可能有些地方不行,实在不行就上代理吧再说Gradle下载jar包慢,在build.gradle文件的repositories{}内添加上阿里的仓库当然,如果添加了阿里仓库还不行的话只能找其他方

2022-06-24 13:48:35 3875 2

原创 IDEA社区版创建SpringBoot Web工程

idea版本:IntelliJ IDEA 2022.1.2 (Community Edition)jdk:jdk1.8.0_131idea社区版创建SpringBoot挺麻烦的,需要插件Spring Initializr and Assistant这个插件不支持低版本,具体多低可以去官网看,新手都应该用的最新版接下来创建新项目File->New->Project...选Spring Initializr如果网络好的话可以选Default start.spring.io,由于我这边网络不好所以选Custom,

2022-06-16 10:50:24 2342

原创 Blender 插件开发 围绕物体旋转的相机

blender插件开发的基本流程是这样的,想做一个功能首先先学会怎么操作,再复制信息窗口上的代码,最后在blender里测试一下,基本完成,当信息窗口里没有操作的代码时,就去翻PythonAPI。围绕物体旋转的相机把前面几篇的东西都用上了,我这篇文章算Blender插件开发的一个总结,以后没遇到特别功能基本不跟新了贴代码 def execute(self, context): parent_object = bpy.data.objects["酒瓶"] #

2022-01-29 14:31:24 3410 1

原创 Blender 插件开发 添加约束

一个简单的功能,相机一直对准物体,不管物体怎么移动,用blender做过这功能的都知道只要添加一个阻尼跟踪就好了代码 def execute(self, context): camera = None for obj in bpy.context.collection.all_objects: if obj.type == 'CAMERA': camera = obj br

2022-01-28 10:14:26 2505

原创 Blender 插件开发 节点

节点总共分三部分:材质节点,环境节点和合成节点。节点的开发很简单,先打开一个消息界面,再打开一个着色器编辑器界面,在着色器编辑器内创建一个节点通过消息界面知道节点的type最后转换成代码下面我用代码创建了一个材质,将材质设定成红色test_material = bpy.data.materials.new("test_material") test_material.use_nodes = True test_material.node_tree

2022-01-27 10:31:17 1394

原创 Blender 插件开发 计算模型长宽高

模型的长宽高在写一些需要计算的插件时还是挺有用的,可以通过object.dimensions(模型尺寸)知道,可是遇到复数模型组成的物体计算长宽高就比较麻烦了,像我这个模型就是复数子模型组成的,用一个空物体当父级两个方法:方法一,把复数模型合并成一个模型;方法二,通过顶点计算出长宽高方法一代码selected_objects = bpy.context.selected_objects bpy.context.view_layer.objects.active = sele

2022-01-26 18:37:29 1604

原创 Blender 插件开发 添加快捷键

有时候插件有些功能需要用快捷键快速调用,比较麻烦的是不知道哪些快捷键已经被设定好了,我就用最简单的方法一个一个按,确定ctrl+D没有调用任何功能,那就先用ctrl+D来当快捷键先创建个Operatorclass TestShortcutOperator(bpy.types.Operator): bl_idname = "test_shortcut.operator" bl_label = "快捷键" def execute(self, context):

2022-01-25 14:09:30 668

原创 Blender 插件开发 生成动画

生成动画有两种方法,一种是直接调用object.keyframe_insert(),一种是生成一个fcurve来控制动画,贴代码# 方法1先设置属性再绑定动画 obj = bpy.data.objects['Cube'] obj.location = (0.0, 0.0, 0.0) # obj.keyframe_insert(data_path="location", frame=context.scene.frame_start)没有index表示绑定

2022-01-19 17:36:27 809 1

原创 Blender 插件开发 模型替换材质

现在有a,b,c,d四个材质我想把模型材质替换成bobj = bpy.data.objects['Cube'] b = bpy.data.materials['b'] obj.data.materials.clear() obj.data.materials.append(b)难度再升高一点,我想只替换模型某个面的材质obj = bpy.data.objects['Cube'] b = bpy.data.ma..

2022-01-14 13:39:56 995

原创 Blender 插件开发 添加驱动器

现在有两个方块a和Cube添加一个驱动器让a一直跟着Cube,代码很简单src_obj = bpy.data.objects['Cube'] dst_obj = bpy.data.objects['a'] loc_exp = (dst_obj.location[0], dst_obj.location[1], dst_obj.location[2]) location_names = ('location_x', 'location_y', '.

2022-01-13 17:32:23 1650

原创 Blender 插件开发 将object设置成bpy.context.object

公司开始使用blender后一直忙着写插件,最近准备把一些有用的东西写成博客记录一下吧在使用一些bpy.ops.object下的函数时由于无法传参数,基本默认都是调用bpy.context.object或者是选中的模型,所以记录一下怎么将object设置成bpy.context.object# 将所有选中的模型变成False bpy.ops.object.select_all(action='DESELECT') # 有Cube模型获取Cube i.

2022-01-07 18:26:40 970

原创 window10关掉烦人的自动更新

在干活的时候电脑突然重启更新,这事不止碰到一次了,忍无可忍找找怎么关掉这个功能,还真发现方法,虽然不知道行不行,先记录一下先打开控制面板点把时间设置成2099年当然在设置内设置时间也是一样的,接下来在设置内把系统更新给暂停了虽然暂停只能暂停7天 ,但是下次更新是2099年8月16日的事情了,现在只要我们把时间调整回2021年,下次更新要78年之后了,那时候这台电脑应该连灰都找不到了,那时候微软也不知道还在不在...

2021-08-09 15:01:09 258

原创 blender python 插件开发的基础小知识

由于公司需要,所以开始研究blender插件开发,blender插件是用python开发的,所以一边学blender操作,一边学python相关的知识python网上资料很多还是比较简单的,难的还是blender操作,网上关于blender的资料最好用谷歌,百度是真的垃圾,还不如微软的bingblender可以去官网,斑斓中国下载,也可以去GitHub下载源码自己编译官网斑斓中国GitHub教程网上很多,还有blender官方的手册里也有简单教程,手册在blender的帮助里打开

2021-04-08 17:34:45 1414

原创 Idea Java Gradle创建项目,添加依赖,引用本地jar,打包jar

2020年最后一天,没什么重要的事,就简单研究研究Idea的Gradleidea版本:2020.2首先创建项目,选Gradle->java填好项目名和包名然后Finish创建好后发现没有包和Main.java类,只好自己创建右上角没法run在Main.java类内右键->Run 'Main.main()'看到输出test项目运行成功,试着在build.gradle添加okhttpdependencies { testCo.

2020-12-31 13:22:58 6674

原创 Android OpenGL 模仿抖音上的time warp scan特效

照例先看效果挺有意思的一种滤镜,思路很简单,先确定宽高画一个空的图片,然后通过y轴来一像素一像素的添加图像数据,难点是OpenGL怎么实现,OpenGL可以通过fbo来进行图像数据保存,然后通过一个参数来进行判断如freezeHeight,小于freezeHeight的图像数据不进行处理,大于freezeHeight的都进行替换,freezeHeight随着时间慢慢变大,当现在的freezeHeight比刚才的freezeHeight大的时候,刚才替换掉的图像数据就保留了下来,最后freezeHe.

2020-12-14 17:14:05 597

原创 Java JavaCV+LWJGL显示视频

IDEA版本:2020.2LWJGL版本:3.2.3JavaCV版本:1.5.4通过JavaCV的FFmpegFrameGrabber解码视频在把每一帧是画面用LWJGL显示出来其实没什么难度,就是把JavaCV的FFmpegFrameGrabber解码出来的Frame转成LWJGL可以显示的数据,通过测试发现frame.image[0]的数据可以直接给glTexImage2D进行加载,就是RGB值对不上,Frame的默认格式好像是BGR,只要在解码时设置解码格式就好了frameGrabbe

2020-12-10 13:57:49 446

原创 JAVA IDEA配置JavaCV

JavaCV版本:JavaCV 1.5.4Idea版本:2020.2OpenCV版本:OpenCV 4.4.0在IDEA上添加jar包File->Project Structure点Libraries再点+号选java添加需要的jar包简单写一段代码运行,报错Exception in thread "main" java.lang.ExceptionInInitializerErrorCaused by: java.lang.ArrayStoreEx

2020-11-24 14:45:38 1580

原创 JAVA LWJGL配置OpenGL显示图片

继续搞Java的OpenGL需要导入的jar包将官方Demo里的LWJGLCanvas进行简单的修改LWJGLCanvas.javaimport org.lwjgl.PointerBuffer;import org.lwjgl.opengl.GL;import org.lwjgl.opengl.GLCapabilities;import org.lwjgl.system.MemoryStack;import org.lwjgl.system.Platform;import o

2020-11-20 15:48:19 1100

原创 Android OpenGLES Camera2绿幕抠图

真的是不能乱立flag,刚说完没啥事就给我来事了,这次要我试试手机摄像头的绿幕抠图,我说这玩意儿效果怎么样无法保证,毕竟是实时的,无法做到象后期那样精细的抠图先看效果只能说还行,绿边还是有的shader是用了RealTimeGreenScreen这项目的算法,对参数进行了修改思路是先把rgb转成hsv,通过rgb的g和hsv的颜色范围来确定绿色,再使用算法HSV基本颜色分量范围Github...

2020-11-20 11:42:27 2226 3

原创 JAVA OpenGL开发 IDEA配置LWJGL

最近公司没什么手机项目,也不知道该做些什么就研究PC上的JAVA开发,刚开始是研究OpenCV的,发现一些OpenGL的滤镜用OpenCV处理的挺慢的,就开始研究OpenGL了,网上搜了一下发现大家比较推荐用LWJGL就试着学习学习。先说LWJGL版本,我在Github上下载的是最新的LWJGL 3.2.3IDEA版本是2020.2开始在IDEA上添加jar包File->Project Structure点Libraries再点+号选java添加需要的jar包我

2020-11-17 16:43:20 2447 1

原创 Android OpenGLES视频模糊,毛玻璃效果

最近帮朋友做了个给视频加模糊的功能,毛玻璃效果,思路很简单,首先要先知道哪些参数能修改模糊度,我在动态调节模糊里说了sigma,blurRadius和图片尺寸都会影响模糊效果,在画面清晰时sigma对模糊的效果影响特别小,而blurRadius必须很大的时候才能达到效果,可是blurRadius太大会照成视频卡顿,所以最简单的方法是先降低画面尺寸,在设置blurRadius和sigma。思路有了,接下来是原理,缩小画面尺寸,先想到的应该是改变视频的长宽,但我们不能去改原文件的长宽,所以只能对解码出来的视

2020-09-03 17:51:18 2329 4

原创 OpenCV实现OpenGL的mix

mix在OpenGL里是返回x和y的线性混合,在OpenCV里可以用addWeighted来实现,可是它不能实现这种效果可以看到这个皮卡丘一边不透明,一边半透明,这种效果在OpenGL里很简单就实现了,我在OpenCV里没找到方法,就自己写了一个在网上找到了mix的公式x⋅(1−a)+y⋅a,根据公式public static Mat cvMix(Mat x,Mat y,Mat a){ if(x.channels() != y.channels()){

2020-07-30 16:16:57 1207

原创 OpenCV实现正片叠底

搞OpenGL的时候就接触过正片叠底,实现也简单就A乘以B,最近在搞OpenCV,发现相乘的结果不对A图B图使用Core.multiply后的图片是这样的照成是因为OpenCV的默认取值范围在0~255,而OpenGL的取值范围在0~1,所以OpenCV的图片相乘会出现大于255的情况,而OpenGL相乘永远都不会大于1。这是我在android开发时遇到的情况,其他环境没测试过,不太清楚。解决方式很简单,把OpenCV的取值范围转成0~1再相乘public static

2020-07-28 13:39:15 1594

原创 Android opengles 法线贴图(Normal Mapping)

在褶皱的画面上做画面替换,比如一件衣服替换衣服的花纹,再比如旗子上替换图案,由于不知道用的是什么计算就搜索相关的东西,原来这种技术叫凹凸映射,有两种实现方法高度纹理(height map)和法线纹理(normal map),原理方面我也不太懂,所以就不说了,有兴趣可以自己搜索相关内容,我在网上找到了法线纹理的实现方法normalMapping,高度纹理以后找找看法线纹理是将原图通过法线贴图计算出法线向量,最后渲染出来凹凸感生成法线贴图的工具网上有很多,可以自己搜索代码和素材都

2020-05-19 10:28:40 541

原创 Exoplayer多视频切换和HLS多码率手动切换

多视频切换说白点就是上一集下一集功能,在网上找了一下发现几篇都是要改源代码的,这么强大的播放器怎么会没有这个功能呢,就换了关键字找,最后找到别人说可以用ConcatenatingMediaSource实现,然后又找具体代码,最后在GitHub里找到例子AesExoPlayer,后来翻了下Exoplayer的demo代码发现也有怎么用ConcatenatingMediaSource的,就是不太明显c...

2020-04-01 18:00:22 3586 2

原创 Android artoolkitx渲染3D模型

artoolkitx的demo只是简单的渲染了一个方块,想要复制的3D模型要自己想办法,最初想用assimp的,可是太复杂了,我自己还搞不懂,就找其他的,发现了个纯java的3D引擎rajawali,嗯还是有点复杂要仔细研究,最后找到个简单的android-3D-model-viewer,然后下载下来东改改,西改改勉强可以用了,先看效果用的是android-3D-model-viewer(...

2020-03-06 15:00:58 1360 21

原创 使用Android Studio+CMakeLists编译artoolkitx

公司要预研AR方面的技术,就试试研究artoolkit,网上都是关于编译artoolkit5的例子,artoolkit5已经很久没更新了,而artoolkitx是最新版的,可是没找到关于编译artoolkitx的方法,就试着自己编译试试先说环境:Windows10,Android Studio3.5.3,artoolkitx1.0.6首先先下载artoolkitx再自己创建个新的项目...

2020-03-04 16:05:17 850

原创 使用Android Studio+CMakeLists编译assimp

先说环境win10,android studio3.5.3,ndk-r18b,assimp-4.1.0为啥是assimp-4.1.0,因为最开始去网上找例子的时候是4.1.0版本,就没改了,我想5.0.1也差不多,只是我只编译成功了arm64-v8a的,其他的编译失败了,也不知道是不是参数不对,先这样吧首先创建个项目,选c++项目我创建的项目的CMakeLists.txt文件默认在...

2020-02-24 17:00:41 2243 2

原创 exoplayer播放rtmp流

exoplayer一直在更新,已经和以前的版本不太一样了,而且我这边需要播放rtmp流所以就又重新搞了下exoplayer如果只是引用的话就直接implementation 'com.google.android.exoplayer:exoplayer:2.X.X'或者根据自己的需求引用需要的部分implementation 'com.google.android.exopla...

2019-12-26 16:44:31 6487 3

原创 opengl 关于png带黑边的原因

网上有很多关于png带黑边的解决方法就是混合模式改成glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);可是没有人说为啥会出现这个问题,然后我就被坑死了。公司里有专门做图片的部门,然后他们用的软件是不一样的,一些人做出来的png用glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);是带黑边的,问他们呢他们自己也...

2019-11-11 10:58:34 3121 3

原创 android.support项目升迁到androidx一些控件不知道怎么引用如TabLayout

升级了一下android studio,发现新建项目引用的是androidx,就试着把旧项目也升迁到androidx,升迁遇到的坑网上有很多跟着改就好了,主要是一些好用的控件不知道怎么引用,比如TabLayout,原来是android.support.design.widget.TabLayout,在design内,build.gradle内引用implementation 'com.androi...

2019-09-12 10:37:56 1692 1

原创 android 用opengles实现几个简单的ps叠加方法和简单的滤镜再转成bitmap

最近修改滤镜,发现这篇文章终于把photoshop图层叠加模式讲清楚了 ,就想着实现这篇文章的效果,就做了个小demo2019/09/04更新增加了把各种滤镜转bitmap的方法至于效果对不对我也不知道,因为我没装ps就算装了我也不会用那篇文章的最后两个没有实现,收缩和补偿值不知道是啥,也就跳过了关于A和B,我理解为A是背景图片,B是叠加图片,所以shader代码内A是co...

2019-08-28 15:58:15 945

原创 android 读取局域网共享文件和播放局域网共享视频

这个功能也没啥用,只是稍微研究了一下,最初研究的原因是想播放局域网内共享的视频,虽然成功了,但是现在只能播放几M的小视频主要参考这篇文章Android 冷知识】利用SMB协议远程查看电脑文件或者其他存储设备,这篇文章有些地方写的不清不楚,经过摸索才简单的实现了首先引入jcifs.jar,jcifscybergarage.jar我没找到,找到了源码cybergarage,把cyberga...

2019-08-14 17:21:15 4525 4

原创 android opengl 纹理压缩 使用带透明通道的etc1

etc1网上资料很多,而带透明通道,也就是alpha通道的方法其实就是mask抠图,先看未处理时的纹理样子再来看处理完的样子带透明通道的etc1其实就是高度加了一倍,在下面加上一个mask来进行抠图,根据这个原理jpg我们也可以自己加上透明通道说完原理来说代码关于etc1的处理代码都在android.opengl.ETC1Util内读取etc1数据用的是ETC1Util...

2019-07-16 11:05:20 1375

原创 Android opengles 动态调节高斯模糊

高斯模糊网上例子很多,可是找了一下发现都是没有动态计算权重矩阵数组的,基本是把权重矩阵写死了公式我就不说了,网上很多,只是没有发现权重矩阵的计算代码,根据网上的公式的推导代码float a = (float) ((1.0f / 2.0f * Math.PI * Math.pow(sigma, 2.0f)) * Math.exp(-s / (2.0f * Math.pow(sigma, 2...

2019-06-13 17:55:07 1030 1

原创 Android opengles 传数组给shader着色器

最近在研究高斯模糊,有用到传数组给着色器这个功能就记录一下先贴fragment_shader.glsl代码uniform highp float vt[4];void main() { gl_FragColor = vec4(vt[0],vt[1],vt[2],vt[3]);}一个长度为4的float数组,根据数组来显示颜色根据uniform我们在创建program的...

2019-06-12 10:57:37 1611

camera2 opengl实现滤镜效果录制视频

简单的java代码,复制到项目就可以了,我只用了黑白滤镜效果

2017-11-27

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除