自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 Vulkan-程序结构

完整的Vulkan程序包含

2022-10-17 11:09:29 136 1

原创 Vulkan-类型说明

vulkan

2022-08-08 18:40:24 186

原创 SQLite步骤

C++使用SQLite步骤及示例1、 下载sqlite文件。下载网址:http://www.sqlite.org/download.html。SQLite版本为SQLite 3.11.1,相关文件如下。sqlite-dll-win32-x86-3110100.zip:包含sqlite3.def、sqlite3.dll文件。sqlite-amalgamation-3110100.zip:包含sqlite3.h 文件。sqlite-tools-win32-x86-3110100.zip:包含sqli

2021-10-13 15:59:51 152 1

原创 git常用命令

git常用命令git config --global user.name "GTTON"git config --global user.email "tornadoweb@163.com"git initgit remote add origin https://gitee.com/gtton/test.gitgit push -u origin mastergit remote add origin https://gitee.com/gtton/test.gitgit push -

2021-09-16 17:14:51 86

原创 射线与三角形相交

射线与三角形相交虽然射线和三角形的相交检测可以用来实现拾取(Picking),但是大多数程序并不采用这个方法,原因是这个方法效率很低,我们可以设想,一个大型的3D游戏,某个模型的三角形数量很可能是百万级的,在此情况下,对模型上的每个三角形求交是一件极其耗费时间的事情。所以一般可行的方法是,用包围球和包围盒(AABB、OBB、FDH)来代替,计算出能容纳模型的最小球体或者举行提,只要判断射线与包围球或者包围盒求交即可,只是精确度上有一定误差,但是足以满足多数程序的需要。coding// Vecto

2021-09-06 12:28:56 372

原创 VScode使用

常用环境变量${workspaceFolder} - 打开文件夹所在路径${file} - 当前已打开文件${fileBasename} - 当前已打开文件名${fileBasenameNoExtension} - 当前已打开文件名无后缀${cwd} - 在启动时的当前工作目录Debugger"name": "xfb","type": "cppvsdbg","request": "launch","program": "${workspaceFolder}/bin/xfb.exe",

2021-07-15 14:26:22 163

原创 vs code配置

vs code配置1 用户配置其他操作通过shift + command + p查找运行,比如用户设置:shift + command + p后,输入user setting,打开用户设置;shift + command + p theme可选择主题颜色2 调试2.1 c++  编译完代码后,可用F5开始代码调试。如无launch.json配置文件,vscode将会自动生成该文件进行调试配置,如下所示:{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现

2021-06-25 09:51:30 272

原创 三角函数公式

三角函数公式两角和公式sin(A+B) = sinAcosB+cosAsinBsin(A-B) = sinAcosB-cosAsinBcos(A+B) = cosAcosB-sinAsinBcos(A-B) = cosAcosB+sinAsinBtan(A+B) = (tanA+tanB)/(1-tanAtanB)tan(A-B) = (tanA-tanB)/(1+tanAtanB)cot(A+B) = (cotAcotB-1)/(cotB+cotA)cot(A-B) = (cotAcot

2021-06-23 14:52:22 186

原创 Ubuntu显卡驱动安装

//禁用nouveausudo vi/etc/modprobe.d/blacklist-nouveau.conf//添加/*blacklist nouveauoptions nouveau modeset=0*/sudo update-initramfs -usudo rebootapt-get autoremove nvidia*service lightdm stop-->>//查看drivers ubuntu-drivers devices//切换终端sud

2021-03-18 15:26:05 89

原创 apt命令

sudo apt-get update 更新源sudo apt-get install package 安装包sudo apt-get remove package 删除包sudo apt-cache search package 搜索软件包sudo apt-cache show package 获取包的相关信息,如说明、大小、版本等sudo apt-get install package --reinstall 重新安装包sudo apt-get -f install 修复安装sud

2021-03-16 16:58:12 189

原创 CMake使用小结

CMake使用小结指定本地库的位置set(Qt5_DIR "path")list(APPEND CMAKE_PREFIX_PATH ${Qt5_DIR})设置编译输出的路径set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/lib)set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/lib)set(CMAKE_RUNTIME_OUTPUT_DIRECTO

2021-02-01 09:40:27 818 2

原创 VTK管线信息对象

VTK管线信息对象vtkInformation信息对象主要可分为五类:管线信息对象vtkExecutive中包含管线信息对象,保存的是执行信息 。每个输出端口对应一个管线信息对象,由vtkExecutive::GetOutputInfomation()函数获取。他包含输出端口的数据(vtkDataObject)。vtkDataObject数据中也包含了其指针,通过vtkDataObject::GetPipelineInfomation()访问。对应的输入端口也有一个管线信息对象,通过vtkExecu

2021-02-01 09:37:34 427

原创 Qt实现应用程序单例

Qt实现应用单例#include <QApplication>class QLocalServer;class ServerLocal:public QApplication{ Q_OBJECTpublic: ServerLocal(int &argc, char **argv):QApplication(argc,argv){initLocalConnection();}; void initLocalConnection(); void n

2021-02-01 09:37:14 183

原创 Boost.program_options

Boost.program_options命令行参数配置namespace po = boost::program_options;po::options_description generic("Generic options");generic.add_options() ("version,v", "print version string")//--version -v ("help", "produce help message");//--help po::op

2021-02-01 09:35:26 112

原创 VTK自定义Filter类

VTK之自定义Filter类VTK中通过管线机制来实现组合各种算法处理数据。每个Filter可分为两个组成部分:一个是算法,继承vtkAlgorithm,主要负责处理输入的数据和信息;一个是执行对象,继承vtkExecutive,负责通知算法对象何时运行以及传递需要处理的数据和信息。  Filter类继承vtkAlgorithm及其子类,实例化时,其内部会生成一个默认的vtkExecutive对象,用于管理执行管线。  vtkInformation是实现VTK执行管线的一个非常重要的类。它是一个Map

2021-02-01 09:34:56 469

原创 VTK交互窗口

VTK交互窗口交互部件VTK的Widget类主要包括vtk3DWidget和vtkAbstractWidget两个父类,它们都派生自vtkInteractorObserver。其中vtk3DWidget主要在三维渲染场景中生成一个可以用于控制数据的可视化实体,比如点、曲线、平面、球体等;vtkAbstractWidget是所有窗体的基类。  vtkAbstractWidget作为基类,只定义一些公共的API以及实现了“交互/表达实体”分离的设计机制,其中,把从vtkRenderWindowIntera

2021-02-01 09:34:27 523

原创 OpenCV大津法二值化

OpenCV大津法二值化大津法(OTSU)是一种确定图像二值化分割阈值的算法,由日本学者大津于1979年提出。从大津法的原理上来讲,该方法又称作最大类间方差法,因为按照大津法求得的阈值进行图像二值化分割后,前景与背景图像的类间方差最大。是求图像全局阈值的最佳方法。优点:计算简单快速,不受图像亮度和对比度的影响。缺点:对图像噪声敏感;只能针对单一目标分割;当目标和背景大小比例悬殊、类间方差函数可能呈现双峰或者多峰,这个时候效果不好。#include <iostream>#include

2021-01-29 15:53:03 1204

原创 OpenCV二值化

OpenCV二值化cv::Mat Binarize(cv::Mat gray, int th){ int width = gray.cols; int height = gray.rows; cv::Mat out = cv::Mat::zeros(height,width,CV_8UC1); for(int y = 0;y<height;y++){ for(int x = 0;x<width;x++){ if(gray.at<uchar>(

2021-01-25 11:54:53 194

原创 OpenCV转换成灰度图像

OpenCV转换成灰度图像// BGR -> Graycv::Mat BGR2GRAY(cv::Mat img){ // get height and width int width = img.cols; int height = img.rows; cv::Mat out = cv::Mat::zeros(height,width,CV_8UC1); for(int y = 0; y< height ;y++){ for(int x = 0; x &lt

2021-01-25 11:40:34 880

原创 OpenCV通道交换

OpenCV通道交换// Channel swapcv::Mat channel_swap(cv::Mat img){ // get height and width int width = img.cols; int height = img.rows; // prepare output cv::Mat out = cv::Mat::zeros(height, width, CV_8UC3); // each y, x for (int y = 0; y < hei

2021-01-25 11:38:46 530

原创 Boost库编译

Boost库编译生成boost的自用的编译工具b2.exeb2.exe stage --toolset=msvc-14.0 --without-python --stagedir="c:/build" link=static runtime-link=shared runtime-link=static threading=multi address-model = 64 debug releasestage/install:stage表示只生成库(dll和lib),install还会生成包含头文

2021-01-23 20:55:00 788

原创 VTK系统概述

VTK系统概述渲染引擎VTK渲染引擎的类 主要负责接收管线的输出数据并将结果渲染到窗口中。vtkProp渲染场景中数据的可视表达,是一个虚基类。最常用的vtkProp子类是vtkActor和vtkVolume。vtkActor用于表示场景中的几何数据。vtkVolume表示场景中的体数据。vtkActor2D常用来表示二维空间中的数据。子类负责确定场景中对象的位置、大小和方向信息。vtkProp内部有一个Mapper对象,负责存放数据和渲染信息,一个Property对象,负责控制颜色、不透明度

2021-01-18 14:53:53 599

原创 C++调用Python

C++调用PythonC++调用Python主要使用到Python安装路径下的include、libs两个文件;include是头文件包含libs是静态链接库调用流程#include <Python.h>int main(){ Py_Initialize();//初始化Python环境 PyRun_SimpleString("import sys");//导入库 PyRun_SimpleString("sys.path.append('./')");//当前路径添加到Pytho

2021-01-15 15:25:24 477

原创 OpenCV.Mat

cv::Mat该数据结构是opencv中重要的数据结构,描述了加载或生成图片的信息。1、原点的位置位于图片的左上角2、按照行列索引排序,即img.at<cv::Vec3b>(1, 2)是第一行第二列的数据后续发现有其他特性,继续添加...

2021-01-12 10:17:54 96

原创 Qt小结

Qt小结最小化后恢复界面假死冻结void showEvent(QShowEvent *e){setAttribute(Qt::WA_Mapped);QWidget::showEvent(e);}设置支持高分辨率QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);使用QEventLoop同步获取返回结果而不阻塞界面QEventLoop loop;connect(reply, SIGNAL(finished()), &a

2021-01-07 21:23:17 1622 3

原创 OpenCV概述

OpenCV概述计算机视觉库。包含模块CoreOpenCV库的基础结构和基本操作Improc基本的图像转换;滤波、卷积操作Highgui轻量级的UI工具包Video读写视频流Calib3d校准单个、双目以及多个相机Feature2d检测、描述以及匹配特征点Objdectect检测特定目标;也可以训练检测器并用来检测其他物体Ml机器学习模块Flann快速最邻近库,贡其他模块使用GPU函数在CUDA上的优化实现Photo计算摄影学的函数工具Stitching图

2021-01-07 21:23:02 299

原创 Phong光照

冯氏光照计算方式环境光+漫反射光+镜面反射光vec3 objcolor;// ambientvec3 ambient = 0.05 * objcolor;// diffusevec3 lightDir = normalize(lightPos - FragPos);float diff = max(dot(lightDir, normal), 0.0);vec3 diffuse = diff * objcolor;// specularvec3 viewDir = normalize

2021-01-06 14:59:27 121

原创 Git常用命令

Git常用命令拉取git pull git pull <远程主机名> <远程分支名>:<本地分支名>推送git push 推送git push <远程主机名> <本地分支名>:<远程分支名>git push --set-upstream origin bug1001144创建分支git branch 分支名 -d 删除分支 -D 强制删除分支切换分支git checkout 分支名添加修改git ad

2021-01-06 14:18:06 49

原创 Qt中lupdate 和 lrealease 命令使用

lupdate 的命令行参数说明Usage:lupdate [options] [project-file]lupdate [options] [source-file|path|@lst-file] -ts ts-files|@lst-fileOptions:-no-obsolete删除所有无用的字符串。-extensions [,]处理具有给定扩展名的文件。扩展列表必须用逗号隔开。默认: ‘java,jui,ui,c,c++,cc,cpp,cxx,ch,h,h++,hh,hpp,h

2021-01-06 13:55:05 5169

原创 Boost.PropertyTree

Boost.PropertyTree概述1、它是一种容器,特点是层次结构,键值对保存,但不排序。2、可以解析XML、Json、INI配置文件。结构如下:struct ptree{ data_type data; // data associated with the node list< pair<key_type, ptree> > children; // ordered list of named chil

2021-01-06 12:03:37 321

原创 Boost.Asio

Boost.Asio(一)Boost.Asio是跨平台C++网络库。支持同步和异步IO操作,支持如TCP、UDP和ICMP的互联网协议。核心功能基础使用1、 程序至少有一个io_context,表示的是操作系统IO服务连接。boost::asio::io_context io_context;2、创建一个IO处理对象,如socket对象。boost::asio::ip::tcp::socket socket(io_context);3、 连接到对应的IO端口。socket.conn

2020-12-30 15:03:07 498

空空如也

空空如也

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

TA关注的人

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