- 博客(303)
- 资源 (6)
- 收藏
- 关注
原创 VTK 观察者&命令模式: vtkCallbackCommand
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL2)VTK_MODULE_INIT(vtkInteractionStyle)#include <vtkSmartPointer.h>class vtkRenderer;class vtkImageViewer2;c.
2021-01-16 19:00:10 947
原创 VTK图像裁剪: vtkExtractVOI
原始图像裁剪一半示例#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL2)VTK_MODULE_INIT(vtkInteractionStyle)#include <vtkSmartPointer.h>class vtkRenderer;class vtkIm
2021-01-16 18:01:06 1020
原创 VTK vtkLight
示例vtkLight的简单用法#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL2)VTK_MODULE_INIT(vtkInteractionStyle)#include <vtkSmartPointer.h>#include <vtkRenderer.h
2021-01-16 17:55:55 189
原创 VTK Actor的属性
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL2)VTK_MODULE_INIT(vtkInteractionStyle)#include <vtkSmartPointer.h>#include <vtkRenderer.h>#include ...
2021-01-16 17:51:05 1682
原创 VTK 图像画布
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL2)VTK_MODULE_INIT(vtkInteractionStyle)#include <vtkSmartPointer.h>class vtkRenderer;class vtkImageCanvas...
2021-01-16 17:46:47 302
原创 QT VTK 信号和槽关联
该示例主要显示鼠标的实时位置#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL2)VTK_MODULE_INIT(vtkInteractionStyle)#include <vtkSmartPointer.h>class vtkRenderer;class v.
2021-01-16 17:35:59 755 2
原创 QT Vtk 显示MHD图像
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL2)VTK_MODULE_INIT(vtkInteractionStyle)#include <vtkSmartPointer.h>class vtkRenderer;class vtkImageViewer2;.
2021-01-16 17:31:06 227
原创 QT + VTK 显示图像
主要代码如下#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL2)VTK_MODULE_INIT(vtkInteractionStyle)#include <vtkSmartPointer.h>class vtkRenderer;class vtkImageV
2021-01-16 17:26:26 1357 2
原创 cpp文件中的inline和static修饰函数
(1)导致重定义# 分别在test.cpp 和 test1.cpp中定义相同的函数print#include <iostream>void print(){ std::cout << __FILE__ << " ==> " << __FUNCTION__ << std::endl;}(2) 在cpp中增加static/inline限制时,避免了重定义,但是,为什么inline会起作用呢?#include &.
2020-12-12 09:10:10 303
原创 Protobuf 中的类型检查
在使用protobuffer时,如果定义一个消息如下:enum my_enum{enum_type1 =1,enum_type2 =2}message my_msg{ required my_enum test_enum = 1}那么,在protoc生成的代码中,在赋值时 set_test_enum(const my_enum value) 的第一行代码会进行判断,判断value是否为对应的枚举数值,否则,会报错。同时,在c++中,以前认识存在...
2020-12-12 08:53:17 1206
原创 C++ 指针释放检查
在一些编译器中,支持sizeof()返回0,所以,会用到是否为合法类型,否则会导致中断触发#include <iostream>using namespace std;template<typename T>inline void checked_delete(T* x) noexcept{ typedef char type_must_be_complete[sizeof(T) ? 1 : -1]; (void) sizeof(type_must.
2020-12-06 17:58:02 1523
原创 C++ std::cout 输出颜色
#include <iostream>#include <vector>#include <string>using namespace std;#define WINDOWS_SYSTEM (0)#define LINUX_STSTEM (1)#define SYSTEM_TYPE (1)#if SYSTEM_TYPE == WINDOWS_SYSTEM#include <iostream>#include <windows..
2020-12-06 12:15:55 4351
原创 简单任务池
简单的线程池的实现int run_thread5(int from, int to){ std::cout << __FUNCTION__ << ", currentTime E = " << std::chrono::time_point_cast<std::chrono::milliseconds>(std::chrono::system_clock::now()).time_since_epoch().count() << s
2020-11-28 14:20:40 294
原创 future
std::future为我们提供了一种方式,能够让我们轻松知道一个异步任务的执行情况,通常,我们在应用过程中,我们可以在提交任务的时候,返回一个std::future,并且在合适的时候检查和等待任务结束,解决异步通信之间信息传递的问题#include <iostream>#include <future>#include <thread>#include <condition_variable>#include <mutex>#i.
2020-11-28 13:00:50 79
原创 条件变量wait
(1) wait(lock): 调用时即阻塞线程,并且调用lock.unlock()(2) wait(lock, conditions): 调用时检查conditions,如果为false,则阻塞线程,并且调用lock.unlock(), 否则,继续执行、(3) wait_for(lock, time_duration, conditions): 调用时,检查条件是否满足:(1) conditions返回true; (2) 时间超时,如果不满足(1)(2)中的一个条件,则阻塞线程,并调用lock..
2020-11-28 11:27:21 3449
原创 c++ std::enable_shared_from_this
在很多应用中,我们可能希望对象永远都存在,特别是在一些异步执行的程序中,回调函数的传入是需要保证对象指针的有效性的,所以,我们一般都是传入共享指针,我们就用到了std::enable_shared_from_this,这样可以通过成员函数返回该对象的共享指针,而不会出现多个共享指针管理相同对象的问题(如果你使用了std::shared_ptr<T>(this),那么,自然就会出现多个共享指针管理相同对象,这个是引入的根本原因)class testA : public std::enable
2020-11-21 11:33:02 462
原创 c++ 不可复制对象
该类对象一般是用于代码唯一性的内容,例如: std::mutex, ofstream, ifstream这类,关于std::ofstream可能很多人没有注意到,我们的函数是不同通过传值的方式传入参数的,例如:void print(const std::ofstream os); // 这样是错误的, 因为ofstream代表一个正在写的文件,如果允许传值,那么,会出现两个对象(其中一个是临时对象)管理相同的文件,那么,在临时对象析构的时候,通常,我们都会在析构函数中关闭文件,如下为c++ qt 实现的
2020-11-21 10:38:54 444
原创 c++ 共享指针:make_shared
记得刚开始使用共享指针的时候,不理解共享指针的reset(), std::make_shared<T>(args....)和构造函数: 实际上本质上是一样的,都是将一个指针交给共享指针对象管理,只是std::make_shared<T>(args...)在自身构造函数中,利用传输的参数构造一个对象指针给生成的共享指针对象,即,在构造共享指针的同时分配关联的指针#include <iostream>#include <memory>using name
2020-11-21 10:18:29 1037
原创 C++ 指针和const的讨论
该博客主要关于指针的相关信息,包含普通指针和共享指针以及const的讨论#include <iostream>#include <memory>using namespace std;// 对于普通类型指针#define PTR(X) X* // 普通指针#define CONST_PTR(X) const X* // 指针内容不可修改#define PTR_CONST(X) X* const ...
2020-11-21 10:01:01 87
原创 std::bind 和 成员函数中的重载函数
#include <iostream>#include <functional>class testBind{public: void print(int num) { std::cout << "num = " << num << std::endl; } void prin...
2020-05-02 12:26:57 2406
原创 std::bind 可变参数模板函数
#include <iostream>#include <string>#include <functional>using namespace std;class TestBindVar{public: template<typename... T> void Init(T&... args) ...
2020-05-02 11:53:21 2368
原创 C++函数类型和函数指针
函数类型(FuncType)和函数指针(FuncPointer) 函数指针: 指向函数的的指针,和普通的指针无本质区别函数类型: 由函数返回值类型/函数参数类型决定,和函数名称无关例如:对于函数: bool my_function(int a, const std::string& str)函数类型(FuncType): bool(int, const std::str...
2020-05-01 11:03:58 1213
原创 std::bind和std::function
在C++11中增加的新特性,为C++编程提供了极大的方便,可以用来替换的函数指针,当然,对比函数指针,std::function更加简单,因为它更像一个对象;如下代码显示了几种常用的形式,分别为类普通成员函数,类静态函数,普通静态函数和普通函数,注意,在示例中普通静态函数和普通函数的生存周期相同,可见范围也是相同的,所以,并无太多差别(在该示例中)#include <iostrea...
2020-05-01 09:26:57 211
原创 websocket++序列: Server
websocket服务器主要包含: (1) 设置日志级别 (2) 初始化asio (3) 设置默认Handler (4) 进行监听...
2020-04-12 17:39:15 492
原创 websocket++序列: Client
关于websocketpp 示例注释(https://docs.websocketpp.org/md_tutorials_utility_client_utility_client.html), 实际上是熟悉endpoint和connection,并且,两者之间关系: endpoint中关于connection相关配置在创建时拷贝道connection中,如果endpoint配置进行更新时,并不影...
2020-04-12 17:39:07 991
原创 websocket++序列: Config
1. Core Configs1.1 Policies:Typedef Name Effect concurrency_type Concurrency policy: 并行策略 elog_type Error logger type: 错误日志类型 alog_type Access logger type: 接入日志类型 request_type...
2020-04-12 17:38:58 232
原创 websocket++序列: Logger
1. 日志类型1.1 类别日志类型 说明 websocketpp::log::alevel 接入日志,默认只有debug/development日志 websocketpp::log::elevel 错误日志 1.2 日志策略 日志策略 备注 websocketpp::log::basic 基本日志策略,写日志到std::ostream,...
2020-04-12 17:38:50 435
原创 websocket++序列: Handler
1. Connection Handlers: 同连接相关的Handler Event Signature Version Socket Initial: 套接字初始化 socket_init(connection_hdl, asio::ip::tcp::socket&) >0.3.0 Asio Transport TCP established...
2020-04-12 17:38:42 699
原创 boost::asio序列: TCP通信
基于在UDP通信的相同原因,我们将原始的boost::asio示例进行修改,以保证能够在自己的PC上能够运行:1. TCP同步客户端#include <iostream>#include <boost/array.hpp>#include <boost/asio.hpp>using boost::asio::ip::tcp;int main...
2020-04-12 17:38:31 1296
原创 boost::asio序列: UDP 通信
为了能够测试,我将原来boost的示例中的端口13更改为60013,因为在13端口为daytime服务的专用端口: 如果强制使用运行时将会导致权限错误(ubuntu16.04)1. 同步UDP 客户端#include <iostream>#include <boost/array.hpp>#include <boost/asio.hpp>us...
2020-04-12 17:38:21 2417
原创 boost::asio序列: 多线程
示例代码中,在原来boost::asio代码基础上,增加了打印线程id的代码,方便理解多线程执行boost::asio::io_context::run()(或 boost::asio::io_service::run())的特点,同时,在这个示例中,学习boost::asio::io_context::strand的作用,就是,控制执行的顺序,先加入的先执行#include <io...
2020-04-12 17:38:12 1502
原创 boost::asio序列: boost::bind 和 std::bind 和 class member function
1. boost::bind => class member function#include <iostream>#include <boost/asio.hpp>#include <boost/bind.hpp>#include <boost/date_time/posix_time/posix_time.hpp>clas...
2020-04-11 16:00:08 268
原创 boost::asio序列: boost::bind 和 std::bind
1. 采用boost::bind#include <iostream>#include <boost/asio.hpp>#include <boost/bind.hpp>#include <boost/date_time/posix_time/posix_time.hpp>void print(const boost::system:...
2020-04-11 15:52:55 1272
原创 boost::asio序列: 计时器
以下两个示例都是使用计时器的例子,超时时长设置为5秒1. 使用计时器同步等待超时#include <iostream>#include <boost/asio.hpp>#include <boost/date_time/posix_time/posix_time.hpp>int main(){ // 如果采用boost旧版本,则: boo...
2020-04-11 15:38:02 182
原创 Boost::Asio 序列: 域名解析
// #include <QCoreApplication>/* * ModuleName: Main * Description: Boost::asio::ip::tcp::resolver * Author: hsw * Date: 2020-04-11 * */#include <iostream>#include <boost/asio...
2020-04-11 15:25:15 462
原创 boost::asio 序列19: basic_resolver
explicit basic_resolver(const executor_type& ex) 和 template <typename ExecutionContext> explicit basic_resolver(ExecutionContext& context, typename enable_if&...
2020-04-11 15:21:46 319
原创 boost::asio 序列18:basic_socket_acceptor
explicit basic_socket_acceptor(const executor_type& ex) 和 template <typename ExecutionContext> explicit basic_socket_acceptor(ExecutionContext& context, typen...
2020-04-11 15:21:37 594 1
原创 boost::asio 序列16: tcp::socket 和 udp::socket & socket_basic
reactive_socket_service_base execution_context_service_base<reative_socket_service<Porotocol>> \ ...
2020-04-11 15:21:26 399
原创 boost::asio序列17: basic_datagram_socket 和 basic_stream_socket
explicit basic_datagram_socket(const executor_type& ex) 和 template <typename ExecutionContext> explicit basic_datagram_socket(ExecutionContext& context, typ...
2020-04-11 15:21:17 538
原创 boost::asio序列13: io_object_executor
实现I/O handler的投递// Wrap the (potentially polymorphic) executor so that we can bypass it when// dispatching on a target executor that has a native I/O implementation.template <typename Executo...
2020-04-11 15:21:05 425
OpenCV + Contribute部分windows编译的release版本
2019-01-16
c++&qt;&windows;背景减除算法
2018-01-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人