
c/c++
文章平均质量分 96
Cool2Feel
横向学习,纵向思考
展开
-
基于openssl的单向和双向认证的深入分析
基于openssl的单向和双向认证SSL单向和双向认证基于openssl的单向和双向认证1、前言2、基础知识3、认证流程4、测试代码证书生成过程单向认证双向认证1、前言在openssl的基础上修改私钥校验过程,因此需要对openssl的认证认证流程需要熟悉一下。SSL中涉及到很多概念,开始都不清楚,例如CA,数字签名、数字证书等,本文主要是总结SSL认证的基础知识,openssl的单向和双向认证流程,并写代码测试。2、基础知识SSL:Secure Socket Layer,安全套接字层,它位于原创 2021-08-21 15:11:37 · 1482 阅读 · 0 评论 -
OpenCV环境下进行图像的膨胀与腐蚀操作
图像的膨胀与腐蚀是形态学技术里最基本的操作,相关的定义和实现原理请大家参见帖子:http://blog.youkuaiyun.com/poem_qianmo/article/details/23710721OpenCV提供了函数dilate和函数erode实现图像的膨胀与腐蚀操作,下面分别介绍相关函数并给出示例代码。getStructuringElement函数:这个函数用于返回指定大小和形状的形态学操作运...转载 2019-05-22 14:58:29 · 809 阅读 · 0 评论 -
OpenCV的resize函数实现图像的缩放
在OpenCV中用resize函数实现图像的缩放,下面介绍这个函数!resize函数原型如下:C++: void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )参数意义如下:src:源图像dst:目标图像,即输出图像dsiz...转载 2019-05-22 14:52:17 · 1300 阅读 · 1 评论 -
用OpenCV实现图像平移
图像平移是啥东西就不用讲了吧!需要注意的是图像平移有两种,第一种是平移后图像大小不变,这样会损失图像的部分;第二种是平移后图像大小变化,这样原图像不会有损失。直接上代码,大家看效果吧!代码流程如下:读取图像→显示原图像→调用自定义的函数translateTransform,作平移后图像大小不变的平移处理并显示处理结果→调用自定义的函数translateTransformSize,作平移后图像大...转载 2019-05-22 14:32:27 · 3541 阅读 · 1 评论 -
使用OpenCV对图像作边缘检测(Canny、Sobel、Laplace)
边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。 这些包括(i)深度上的不连续、(ii)表面方向不连续、(iii)物质属性变化和(iv)场景照明变化。 边缘检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域。图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构...转载 2019-05-22 14:14:36 · 1270 阅读 · 0 评论 -
OpenCV中重映射函数remap的使用,以图像在x和y方向的翻转
首先介绍一下remap函数!remap就是用来做重映射的,重映射的含义这里先不讲,大家看完这篇文章就知道了!函数原型如下:C++: void remap(InputArray src, OutputArray dst, InputArray map1, InputArray map2, int interpolation, int borderMode=BORDER_CONSTANT, con...转载 2019-05-22 14:18:26 · 1389 阅读 · 0 评论 -
函数模板与模板函数
1.函数模板的声明和模板函数的生成1.1函数模板的声明函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函数体重复设计。它的最大特点是把函数使用的数据类型作为参数。函数模板的声明形式为:template(参数表){ 函数体}其中,template是定义模板函数的关键字;template后面的尖括号不能省略;typename(或clas转载 2016-10-06 13:43:33 · 350 阅读 · 0 评论 -
c/c++知识点
转自 http://blog.chinaunix.net/uid-7396260-id-2056691.html一、#include “filename.h”和#i nclude 的区别#include “filename.h”是指编译器将从当前工作目录上开始查找此文件#include 是指编译器将从标准库目录中开始查找此文件二、头文件的作用加强安全检测通过头文件可能方便转载 2016-10-03 17:03:52 · 404 阅读 · 0 评论 -
c++ 封装、继承、多态
面向对象的三个基本特征面向对象的三个基本特征是:封装、继承、多态。其中,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!封装转载 2016-10-03 16:48:04 · 320 阅读 · 0 评论 -
关于static与const
static和const 的概念老是搞不清楚。。下面就从网上摘录下部分区别:关于static在c中,static 用于信息屏蔽,你希望该文件中的一些函数和变量只能被该文件中的函数使用,那么,你可以在该函数、变量的前面加上static,代表他们只能被当前文件中的函数使用!在c++这种面向对象的语言中,上述功能就没有必要了。-----------------------C/C+原创 2016-09-18 16:21:11 · 296 阅读 · 0 评论 -
c++常见内存错误
在系统开发过程中出现的bug相对而言是比较好解决的,花费在这个上面的调试代价不是很大,但是在系统集成后的bug往往是难以定位的bug(最好方式是打桩,通过打桩可以初步锁定出错的位置,如:进入函数前打印日志,离开时再次打印日志)。而这些难以定位的bug基本分为2类:内存错误和并非问题。 1、内存泄露 如果在堆栈上分配的内存使用完成后没有释放就会造成内存泄露。少量的内存泄露不至于转载 2016-09-18 16:07:28 · 392 阅读 · 0 评论 -
指针的内存释放
好几年没用C/C++了,由于项目需要,重拾C/C++,使用中时不时的有种亲切感涌来。由于C/C++的自由,让人痛苦但更是让人喜欢的原因,一些经验和技巧显得尤为重要。 最近总是想不明白,一个函数返回一个内存或者对象的指针,那么这个指针指向的对象(内存)到底由谁来释放?要知道,函数返回指针,通常是给外部临时使用的,其指向的内存通常由函数或者成员函数所在的对象自己来管理,其实就是遵从一个原则:转载 2016-09-18 16:15:59 · 2862 阅读 · 1 评论