开发笔记
YoungHong1992
Talk is cheap , show me the code .
展开
-
Docker镜像构建:Ubuntu18.04+python3.10
2、构建Docker镜像,可自定义名称如:ubuntu1804_py310。4、保存Docker镜像到服务器(打tag)3、运行构建好的Docker镜像。1、编写 Dockerfile。原创 2024-06-11 17:22:57 · 587 阅读 · 0 评论 -
D3D为Shader创建常量缓冲区(Constant Buffer)
在OpenGL的Shader编程中(GLSL),我们有时需要用来声明"全局变量",并通过CPU程序调用等函数对其赋值,保证GPU渲染时所有像素访问到该变量的值是一致。官方对的定义是"全局变量",因为每一帧渲染时都可以用重新赋值;但是从GPU角度来看,每一帧渲染对都是只读操作,而不能改写,这也是某种意义上的"常量"了。相同的,在Direct3D的Shader编程中(HLSL),也有类似的"全局变量",通过来声明,官方称其为"常量缓冲区(Constant Buffer)“。不要看官方名字是"常量”,实际上每一帧原创 2022-12-07 19:33:23 · 1023 阅读 · 0 评论 -
DirectX11:API缩写全称、HLSL相关
【代码】DirectX11部分API缩写对应全称。原创 2022-10-19 16:04:00 · 286 阅读 · 0 评论 -
在Windows上使用Vcpkg安装OpenCV
4、这里我选择安装使用opencv4,当前对应4.6.0版本,并且只安装windows平台的x64版。等待安装完成,中途如果有失败请重试该命令。3、查看当前OpenCV版本,可以看到我本机上默认opencv是4.6.0版本,opencv3是3.4.18版本。5、在CMake中通过引入OpenCV。1、拉取vcpkg代码。2、初始化vcpkg。......原创 2022-08-26 16:21:36 · 4035 阅读 · 5 评论 -
各版本Metal支持的iOS版本与MacOS版本
引用自:Metal-Shading-Language-Specification.pdf(第14页)Compiler Options Controlling the Language Version The following option controls the version of the unified graphics and computing language accepted by the compiler: -std= Determine the language re原创 2022-05-17 02:02:35 · 1755 阅读 · 0 评论 -
IOS使用OpenCV:UIImage与cv::Mat转换
原文:OpenCV iOS - Image Processing在 OpenCV 中,所有的图像处理操作通常需要借助于 cv::Mat 类。而在 iOS 中,如果想把图像显示在屏幕上,需要借助于UIImage类的实例。因此,我们在iOS上使用OpenCV处理图像、并把结果显示在屏幕上,或者从屏幕上获取图像、使用OpenCV进行处理,都需要将cv::Mat与UIImage进行转换,这个转换操作需要依赖于iOS开发框架中的Core Graphics。下面是从UIImage 转为cv::Mat所需的代码。原创 2022-05-07 10:51:00 · 1336 阅读 · 0 评论 -
OpenGL将归一化坐标转为原图坐标
如图所示:原图像以2x2像素为一组,每组的像素值由左上角的值代表(即0~8),求以组为单位的均值滤波,并替换掉组内的像素值。分析:当我们求(x,y)点所在的均值滤波时,首先要确定(x,y)所在组的左上角坐标。该图中,我们要首先确定(x,y)对应的4的坐标,然后再求相邻组的左上角坐标。用OpenGL实现如下(fragment shader):// 以2x2像素为一组,求该组左上角像素的均值滤波(kernel size: 3x3)precision mediump float;varying ve原创 2022-04-28 17:42:02 · 1027 阅读 · 0 评论 -
源码编译clang
原链接:https://clang.llvm.org/get_started.html核心步骤如下:git clone https://github.com/llvm/llvm-project.gitcd llvm-projectmkdir build cd buildcmake -DLLVM_ENABLE_PROJECTS=clang -G "Unix Makefiles" ../llvmmake原创 2022-02-25 20:32:29 · 844 阅读 · 0 评论 -
使用Python获取指定进程的CPU和内存使用情况
参考链接:MacOS使用top命令查看进程使用内存import sysimport timeimport os# 设置app名称,名称中不允许有空格,否则后面取top结果会错位if len(sys.argv) < 2: app_name = "MyDemo"else: app_name = int(sys.argv[1])# 根据app_name查找进程idget_pid = "ps -ef | grep " + app_name + " | grep -v gre原创 2021-12-15 16:07:08 · 3785 阅读 · 0 评论 -
CMake中引入指定路径下的OpenCV
在做图像处理时,通常情况下,直接在CMake中使用find_package命令,即可找到系统默认安装的OpenCV:find_package(OpenCV REQUIRED)执行cmake命令后,会找到OpenCV库,并输出路径和版本信息,比如在Mac上的信息是:-- Found OpenCV: /usr/local/Cellar/opencv@3/3.4.15 (found version "3.4.15")我们如果需要使用其他版本,额外需要指定find_package的查找路径,并剔除掉系统原创 2021-12-13 17:40:13 · 5311 阅读 · 0 评论 -
C++ 判断字符串是否为UTF-8格式
原文地址 : http://www.zedwood.com/article/cpp-is-valid-utf8-string-function#include <iostream> using namespace std; bool utf8_check_is_valid(const string& string); int main(int argc, char *argv[]){ string hello = "hello world"; //length 1原创 2021-11-03 14:56:54 · 2016 阅读 · 0 评论 -
yuv_to_bgr
void yuv_to_bgr(const Mat &matY, const Mat &matUV, Mat &matBGR) { uchar *y_pixel = (uchar *)matY.data(); uchar *uv_pixel = (uchar *)matUV.data(); uchar *bgr_pixel = (uchar *)matBGR.data(); int width = matY.cols(); int heig原创 2021-07-02 15:50:10 · 446 阅读 · 0 评论 -
GPU_BUF双线性上采样坐标计算
// 双线性插值上采样__kernel void upsample_2x(省略参数...) { int dx = get_global_id(0); int dy = get_global_id(1); float scale = 0.5f; // 输入/输出 float sx = (dx + 0.5f) * (float)scale - 0.5f; float sy = (dy + 0.5f) * (float)scale - 0.5f; int x原创 2021-04-25 18:01:43 · 259 阅读 · 1 评论 -
cl_arm_printf example
via:cl_arm_printf exampleThe example code shows the cl_arm_printf extension in use. It shows how to use the buffer-size property and the callback property that is required to get output.The example code prints Hello, World! on the console:#include <s原创 2021-03-01 15:27:53 · 511 阅读 · 0 评论 -
常用Linux命令汇总
一、文件和目录cd命令,用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。cd /home #进入'/home'目录cd .. #返回上一级目录 cd ../.. #返回上两级目录 cd #进入个人的主目录 cd ~user1 #进入个人的主目录 cd - #返回上次所在的目录pwd命令,显示工作路径pwd #显示当前工作路径ls命令,查看文件与目录的命令,list之意ls #查看目录中的文件 ls原创 2020-12-25 12:03:52 · 186 阅读 · 0 评论 -
Linux命令全称
pwd:print work directory 打印当前目录 显示出当前工作目录的绝对路径ps: process status(进程状态,类似于windows的任务管理器)常用参数:-auxfps -auxf 显示进程状态df: disk free 其功能是显示磁盘可用空间数目信息及空间结点信息。换句话说,就是报告在任何安装的设备或目录中,还剩多少自由的空间。du: Disk usagerpm:即RedHat Package Management,是RedHat的发明之一rmdir:Remo原创 2020-11-17 11:25:05 · 265 阅读 · 0 评论 -
Google C++ 开发规范手册 (Google C++ Style Guide)
原创 2020-10-16 16:47:37 · 986 阅读 · 0 评论 -
git只查看短commit id
git log -3 --pretty=format:"%h"原创 2020-04-02 19:08:37 · 4047 阅读 · 0 评论 -
Camera ISP图像处理流程
原文地址:http://camera.geek-docs.com/camera-isp/camera-isp-flow-intro.htmlCamera ISP图像处理流程如下图所示下面大概介绍下某个模块的功能和作用RAW域:是指从DPC一直到demosaic阶段(此流程图)DPC:坏点矫正(bed pixel corr),坏点由于芯片制造工艺等问题产生的,坏点是指亮度或者色彩与周...原创 2020-03-12 11:17:32 · 2002 阅读 · 0 评论 -
mipi raw(10bit) 转raw(16bit)
引用自GitHub:https://github.com/oswystan/raw_unpack/**************************************************************************************** Filename: unpack.c* Description: source file** Version: ...原创 2020-03-10 15:14:06 · 6129 阅读 · 0 评论 -
ubuntu 主流压缩与解压缩方法总结
博文原址:https://www.qingsword.com/qing/1289.html#ubuntu-rar-3引言这篇文章介绍ubuntu中文件压缩与解压缩,包含ubuntu系统常用的gzip/bzip2以及tar归档,ubuntu与windows通用的zip压缩方式,还有windows下常用的rar压缩方式,ubuntu支持以上五种压缩与解压缩方式。1.使用gzip/bzip2进...原创 2020-03-07 13:34:53 · 1256 阅读 · 0 评论 -
linux中ls和ll命令的区别
ls命令会输出当前目录下的文件列表,这个大家都知道,不再详解。ll命令是ls的升级版,具体升级了什么呢?我们可以通过alias ll命令来看一下输出:alias ll='ls -alF'这也就代表着我们执行ll时,本质上执行的是ls -alF命令。而对于ls -alF中的-alF,代表如下含义:-a 列出目录下的所有文件,包括以 . 开头的隐含文件。-l 除文件名称外,亦将文件...原创 2020-02-18 11:16:29 · 860 阅读 · 0 评论 -
Git多账户配置
日常开发过程中,我们可能遇到需要在同一电脑上配置多个Git账户的情况;github、公司的git服务器等,这时候我们需要配置多个ssh。以Mac为例。1.取消全局的账户配置查看全局账户git config --global user.name如果存在,取消全局设置 git config --global --unset user.name git config --global ...转载 2020-01-09 17:13:08 · 331 阅读 · 1 评论 -
OpenGL ES错误笔记
执行glBindXxx这类方法,在处理完对应的内容后,需要绑定回之前的状态。例如:GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, mVbo);//绑定VBOGLES20.glBufferData(GLES20.GL_ARRAY_BUFFER, mVboSize, null, GLES20.GL_DYNAMIC_DRAW);GLES20.glBind...原创 2019-10-24 20:26:14 · 726 阅读 · 0 评论 -
Android手机拍照后存储高清原图
Android 系统相机 拍照存储 解决模糊 高清 原图原创 2017-04-19 11:43:08 · 1741 阅读 · 0 评论 -
IE浏览器触屏开发:自动全屏+开机自启
IE浏览器自动全屏右键IE图标→属性,在“目标”后面添加“ -k”参数(有空格,见下图),确定即可。该模式称为Kiosk Mode,默认会载入IE首页,没有地址栏没有工具栏,广泛用于各类服务大厅的触屏电脑。 IE浏览器开机自启win+R,输入“shell:startup”,单击确定按钮 打开启动目录后,把加了“ -k”参数的IE图标复制过去即可实现开机自动启动。 ...原创 2018-03-16 16:27:14 · 10803 阅读 · 0 评论 -
CSS实现div百分比效果
css 页眉、页脚 百分比高度原创 2018-01-07 00:13:13 · 3846 阅读 · 0 评论 -
Thrift在Android上的客户端实现
Thrift在Android平台的客户端实现RPC在Android平台的应用原创 2017-06-26 17:42:20 · 4260 阅读 · 0 评论 -
JavaScript实现无操作后屏保效果
JavaScript实现屏幕保护原创 2017-07-04 16:34:22 · 1752 阅读 · 0 评论 -
Thrift在Android上的客户端实现(二):文件传输
Thrift在Android上的客户端实现(二):文件传输原创 2017-06-29 16:41:20 · 1363 阅读 · 0 评论 -
Java实现身份证算法校验
每一个身份证号码,都不是胡乱随机生成的,而是按照国家的规定,有规则的生成的,具体规则点击这里查看。我们校验用户的身份证输入,仅靠简单的位数判断、正则校验是达不到测试要求的,因此就需要根据国家的规定,把身份证的生成规则转变为算法,通过算法来校验用户的输入是否合法:如果为合法,则将用户信息提交相关部门进行真实性验证。下面废话少说,直接上工具类。因为我的项目为Android项目,用到了Log输出,如...原创 2018-04-19 11:03:34 · 5837 阅读 · 4 评论 -
Android NDK开发之HelloWorld
一、准备工作下载NDK开发包:android-ndk-r16b-windows-x86_64.zip解压NDK,解压路径需要全英文,并且不允许有空格(不可以解压到C:\Program Files路径)。此文中,我的解压路径为:D:\Android\android-ndk,此处的android-ndk为我修改后的文件夹名称,你也可以不修改,保留解压后的原始名称Android Stu...原创 2019-01-07 16:14:04 · 768 阅读 · 0 评论 -
Linux环境下用NDK编译FFmpeg
#!/bin/bashNDK=/usr/android-ndk-r15cSYSROOT=$NDK/platforms/android-19/arch-arm/TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64function build_one{./configure \--prefix=...原创 2019-02-09 22:42:46 · 497 阅读 · 0 评论 -
NDK开发FFmpeg之HelloWorld
一、新建Native C++ 工程首先,不同的工具版本在开发过程中会存在一定的问题,以下为本篇文章的工具版本:AndroidStudio版本:3.3Gradle版本:gradle-4.10.1-allNDK版本:android-ndk-r16b-windows-x86_64FFmpeg库版本:4.0(可参考文章&amp;amp;quot;Linux环境下用NDK编译FFmpeg&amp;amp;quot;)版本确定后,我们在Andr...原创 2019-02-11 19:05:48 · 483 阅读 · 0 评论 -
一行代码解决Android相机预览镜像的问题
二话不说,直接看解决方案(if语句中的代码):Parameters parameters = mCamera.getParameters();parameters.setPreviewSize(previewWidth, previewHeight);if (mCameraId == CameraInfo.CAMERA_FACING_FRONT) { //设置镜像效果,支持的值为fl...原创 2019-03-20 11:07:13 · 10587 阅读 · 9 评论 -
关于Android arm64-v8a、armeabi-v7a、armeabi、x86等CPU下的so文件兼容问题
转自:https://www.veryarm.com/6601.html先介绍几个专业词:ARM :是嵌入式中的一种架构,全称为Advanced RISC Machine,可以理解为ARM处理器。ABI(Application Binary Interface):应用程序二进制接口 描述了应用程序和操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的低接口。ABI和CPU关系:...转载 2019-05-10 20:12:19 · 3362 阅读 · 0 评论 -
Android中的EGL环境创建(native层)
//EGL相关参数typedef struct _ANDROID_EGL_CONTEXT_T { EGLConfig eglConf; EGLSurface eglSurface; EGLContext eglCtx; EGLDisplay eglDisp;} ANDROID_EGL_CONTEXT_T;ANDROID_EGL_CONTEXT_T ctx;...原创 2019-05-13 10:38:02 · 1654 阅读 · 0 评论 -
YUV420sp(NV12、NV21)顺时针旋转90度
public static byte[] rotateYUV420SP(byte[] src, int width, int height) { byte[] dst = new byte[src.length]; int wh = width * height; //旋转Y int k = 0; for (int i = 0; i < width; i++) { for (i...原创 2019-08-14 16:29:00 · 1586 阅读 · 0 评论 -
Android中获取文件路径的方法总结及对照
Android中获取文件路径原创 2017-03-18 15:29:10 · 8937 阅读 · 0 评论