自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 OpenCV - 最大熵分割

转载请注明出处,谢谢. 图像分割系列的博客连续写了两篇了,这次继续写写利用最大熵模型来进行图像的阈值分割。如果对其他相关博客感兴趣可进入下面的链接查看: 1. OpenCV - 区域生长算法 2. OpenCV - 均值迭代分割 3. OpenCV - 最大间方差(OTUS)分割1. 最大熵...

2016-12-29 18:58:31

阅读数 5969

评论数 3

原创 OpenCV - 最大间方差分割

OpenCV中其实有对OTUS算法的实现,threhold()函数最后一个参数可以指定使用OTUS算法。 1、最大方差(OTUS)算法的描述和均值迭代算法相似,OTUS算法也是利用图像的直方图进行的。OTUS算法的思想是选取一个阈值T,T∈[0,m−1]T, T \in [0,m-1],mm为图像...

2016-12-06 20:10:19

阅读数 2403

评论数 0

原创 OpenCV - 均值迭代分割

【题外话】:之前在博客中写过一篇“区域生长”的博客,区域生长在平时经常用到,也比较容易理解和代码实现,所以在很多情况下大家会选择这种方法。但是区域生长有一个最致命的点就是需要选取一个生长的种子点。 为了交流学习,同时也为了后面查阅方便,准备陆续将基于直方图的几种分割算法加以总结。 1、均值迭...

2016-12-03 23:12:24

阅读数 2729

评论数 0

原创 OpenCV - 区域生长算法

1、理论基础       区域生长算法的基本思想是将有相似性质的像素点合并到一起。对每一个区域要先指定一个种子点作为生长的起点,然后将种子点周围领域的像素点和种子点进行对比,将具有相似性质的点合并起来继续向外生长,直到没有满足条件的像素被包括进来为止。这样一个区域的生长就完成了。这个过程中有几个关...

2015-11-27 16:13:21

阅读数 28835

评论数 52

原创 Python链家二手房数据分析

from bs4 import BeautifulSoup import matplotlib.pyplot as plt from sklearn.preprocessing import PolynomialFeatures from sklearn.pipeline import ma...

2019-01-15 23:52:48

阅读数 501

评论数 0

原创 C++内存管理(2)—内存操作相关函数

转载请注明出处:https://www.jianshu.com/p/ca51012db547 C++内存管理(1)——分配和释放的四个层面 上一篇中从整体上来看系统中四个层面上内存的分配和释放,这样我们就对内存分配有了一个整体的认识。这一节则详细的来写写这四个层面中的操作符或函数的使用方法,以及...

2019-01-15 23:49:41

阅读数 217

评论数 0

原创 C++内存管理(1)—分配和释放的四个层面

转载请注明出处 https://www.jianshu.com/p/8f5e4d215d97 1. 站在高处思考 从一个比较高的角度来看,内存管理说到底就是使用OS提供的API或是使用运行在OS之上的Runtime或者更为上层的SDK对内存进行申请和释放。C/C++中内存管理是个经久不衰的话题...

2019-01-15 23:48:49

阅读数 347

评论数 0

原创 OpenCV轻松学-周兵-专题视频课程

《OpenCV轻松学》课程从图像处理基础出发,通过对基础知识的讲解来学习使用OpenCV计算机视觉库。并将OpenCV灵活地使用到自己的实际项目中。课程中强调从使用层面沉入理解内部原理,力求知其然并知其所以然。...

2017-08-23 08:52:52

阅读数 485

评论数 0

原创 AI与医学辅助诊断

人工智能一词越来越频繁的出现在日常生活中。一种事物的时髦,必然有其背后的原因。而对于这样一个大的话题,从整体上来叙述总显得有些不接地气。作为跟AI沾过一些边的博主将以自己接触的方面来发表一点看法。 首先介绍一下,博主在研究生期间从事医疗数字影像研究和医疗系统开发,期间跟临床医生也有过一些交流,研究...

2017-07-22 22:23:18

阅读数 12104

评论数 8

原创 D3D 9和D3D 11绘制流水线对比

绘制流水线(pipline)是图形学编程中属于各种图形学框架的骨架。Windows平台下3D游戏开发几乎都会用到D3D来进行游戏引擎的设计。D3D 9是使用比较广泛的一个版本,D3D 9 中比较核心的就是固定渲染管线(Fixed Function Pipline)。下图是从官方的SDK中翻译的,从...

2017-07-22 18:51:38

阅读数 1214

评论数 0

原创 C++程序员学Python

近两年Python的火热程度可见一斑。尤其是在机器学习、深度学习的带动下很多高校的学生学习Python开发语言。从Python的使用范围上来看,无论是从前端还是后台,都存在有较为广泛的使用。Python的语法相比C/C++,Java之类相对简单很多,因此Python是一种特别容易上手的语言。之前我...

2017-06-04 17:47:11

阅读数 2076

评论数 1

原创 Java网络编程 - 非阻塞IO模型

1. Java NIO简介NIO(Non-Block I/O)是在JDK1.4之后引入的。NIO弥补了同步阻塞I/O的缺点。提供了高速、面向块的I/O。 在NIO库中,所有的数据都是用缓冲区来处理的,在读取数据的时候,他是直接读到缓冲区中的:在写数据时,写到缓冲区中。任何时候访问NIO中的数据都...

2017-05-22 21:14:32

阅读数 1034

评论数 0

原创 Java网络编程 - 同步阻塞IO模型

由于项目需要使用Java开发后台服务器程序,C/C++程序员就要学学Java了。Unix/Linux下的几种网络IO模型在之前的博客中已经提及到,但是使用的大多数都是Unix/Linux下的系统调用。 博客内容大多数来自网络资料以及书籍《Netty权威指南》,转载请注明出处,谢谢! 如果想了...

2017-01-12 16:07:16

阅读数 1576

评论数 0

原创 Linux服务器上搭建SVN

示例在Linux debian上安装SVN服务软件 1. 安装SVN服务软件ubuntu或者debian上可以直接用apt-get,centos上可以使用yum,或者下载安装包都可以,软件名为subversion。sudo apt-get install subversion 安装完成之后可以使...

2016-11-22 16:04:13

阅读数 1239

评论数 0

原创 DICOM影像中的窗宽窗位

1. 为什么有窗宽窗位?医学图像领域的关键技术窗技术,是CT检查中用以观察不同密度的正常组织或病变的一种显示技术,包括窗宽(window width)和窗位(window level)。由于各种组织结构或病变具有不同的CT值,因此想要显示某一组织结构细节时,应该选择适合观察该组织或病变的窗宽和窗位...

2016-11-17 19:38:57

阅读数 6040

评论数 0

转载 STL中的所有算法(70个)

STL算法部分主要由头文件,,组成。要使用 STL中的算法函数必须包含头文件,对于数值算法须包含,中则定义了一些模板类,用来声明函数对象。     STL中算法大致分为四类:         1、非可变序列算法:指不直接修改其所操作的容器内容的算法。         2、可变序列算法:指可以修改...

2016-11-17 19:10:24

阅读数 5105

评论数 3

原创 STL常用算法

#include 算法 常用版本 描述 返回Type std::find() find(_InIt _Fisrt,_InIt _Last, _Ty& _Val); 从两个迭代器指定的范围中查找指定值 引用被查找的值的iterator或end() ...

2016-11-17 19:04:53

阅读数 1049

评论数 0

原创 机器学习 - GMM参数估计的EM算法

看理论之前先来【举个例子】: 对于一个未知参数的模型,我们观测他的输出,得到下图这样的直方图:我们先假设它是由两个高斯分布混合叠加而成的,那么我们该怎么去得到这两个高斯分布的参数呢? EM算法!!1. 高斯混合模型假设观测数据 y1,y2,...,yNy_{1},y_{2},...,y_{N}...

2016-11-09 14:16:23

阅读数 3241

评论数 0

原创 数据高低位交换

一、容易想到的方法unsigned char shift_fun1(unsigned char data) { unsigned char i; unsigned char tmp=0x00; for(i=0;i<8;i++) { ...

2016-10-25 17:24:44

阅读数 2615

评论数 0

原创 OJ编程题教训

引用来自牛客网的一个讨论帖,帖子中列举了最常见的问题。 循环输入输出处理常见问题 1、为什么需要循环输入输出:通常来说OJ对于每道题里面有.in和.out文件,分别表示测试数据的输入和输出。如果某些编程题的所有数据都只做在一个.in和一个.out中,这样就会变成多组测试了,所以需要提交的...

2016-09-06 15:05:52

阅读数 3508

评论数 0

转载 堆和栈的区别

博客转自网上,经过简单整理。 一、预备知识(程序的内存分配)一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack): 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) : 一般由程序员分配释放, 若程序员不释...

2016-09-02 09:29:40

阅读数 575

评论数 0

原创 算法学习 - 快速排序相关

1. 划分 快速排序中最重要的步骤就是划分,即选择一个元素(很多地方称为枢纽元素),将序列划分成两部分,比枢纽元素大的放在枢纽元素的右边,比枢纽元素小的放在枢纽元素的左边。 划分函数的思想: 1. 选择一个枢纽元素(以选择序列的第一个元素为例),暂存到临时变量中 2. 从序列的右边向左查找...

2016-08-31 10:18:13

阅读数 647

评论数 0

原创 拷贝构造函数和赋值操作符

#include using namespace std; class Sales_Item { public: //构造函数 Sales_Item() : units_sold(0), revenue(0.0) { cout << "构造函数" &l...

2016-08-30 20:26:37

阅读数 636

评论数 0

转载 linux高级编程基础系列:线程间通信

线程间通信机制: 线程是一种轻量级的进程。 进程的通信机制主要包括无名管道、有名管道、消息队列、信号量、共享内存以及信号等。这些机制都是由linux内核来维护的,实现起来都比较复杂,而且占用大量的系统资源。 线程间的通信机制实现起来则相对简单,主要包括互斥锁、条件变量、读写锁和线程信号等。 本文会...

2016-08-26 10:54:37

阅读数 622

评论数 0

转载 花10钟看一看少走30年弯路

HP大中华区总裁孙振耀退休感言:   如果这篇文章没有分享给你,那是我的错。   如果这篇文章分享给你了,你却没有读,继续走弯路的你不要怪我。   如果你看了这篇文章,只读了一半你就说没时间了,说明你已经是个“茫”人了。   如果你看完了,你觉得这篇文章只是讲讲大道理,说明你的人生阅历还不...

2016-08-21 18:53:17

阅读数 903

评论数 0

原创 【数据结构】二叉树的遍历

/* * 1.前序遍历的 递归实现和 非递归实现 * 2.中序遍历的 递归实现和 非递归实现 * 3.后序遍历的 递归实现和 非递归实现 * 4.根据两项遍历结果 重构树结构 */ #include <iostream> #include <stdlib.h> #i...

2016-08-18 14:12:36

阅读数 572

评论数 0

原创 【数据结构】链表相关内容

写一个已序链表,也就是说在链表添加节点的时候就将元素添加到合适的位置。#include <iostream> using namespace std;struct node { int value; struct node * next; };void printnod...

2016-08-16 17:23:46

阅读数 555

评论数 0

原创 机器学习 - 朴素贝叶斯法

博客内容源于《统计机器学习》一书的阅读笔记。Python的源码实现源于《机器学习实战》部分内容。 首先,需要回顾下面的三个重要的公式: 条件概率: P(A|B)=P(AB)P(B)P(A|B) = \frac{P(AB)}{P(B)} 全概率公式: P(A)=∑iP(A|...

2016-08-07 12:59:19

阅读数 916

评论数 0

原创 机器学习 - K近临法(KNN)

博客内容源于《统计机器学习》一书的阅读笔记。Python的源码实现源于《机器学习实战》部分内容。 1. K近临算法【算法描述】给定一个训练数据集,对于新的输入实例,在训练数据集中找到与该实例最近临的K个实例,这个k个实例的多数属于某个类,就把该输入实例分为这个类。【数学描述】 输入:训练数据集 ...

2016-08-05 10:38:57

阅读数 997

评论数 0

原创 机器学习 - 感知机

博客内容源于《统计机器学习》一书的阅读笔记。Python的源码实现源于《机器学习实战》部分内容。 1. 感知机模型感知机是二分类的线性分类模型,该模型的输入为实例的特征向量,输出为实例的类别,一般取+1和-1两个值。感知机将实例划分为两类,属于判别模型。1.1 模型定义【感知机定义】 假设输入空...

2016-08-04 10:01:30

阅读数 2059

评论数 0

原创 牛顿迭代法求解方程

说明:该片博客源于博主的早些时候的一个csdn博客中的一篇,由于近期使用到了,所以再次作一总结。原文地址概述牛顿迭代法(Newton’s method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。...

2016-08-03 14:02:35

阅读数 5954

评论数 0

原创 Unix/Linux下5种I/O模型

1. 五种I/O模型在网络编程,经常接触下述的I/O相关的概念: 同步(Synchronous) 异步(Asynchronous) 阻塞(Blocking) 非阻塞(Non-blocking) 信号驱动(Signal driven) 他们之间的关系如下图: 引用网上一个比喻: 你打电...

2016-07-26 17:39:59

阅读数 757

评论数 0

原创 C++四大类型转换

C++ 是一门强类型语言(C语言是弱类型语言),不同自定义类型之间的转换必须进行显式转换。C++ 中提供了四种转换操作符来细分显式类型转换。因为是操作符,所以他们不属于任何的namespace,也就不用包含任何头文件就可以使用。static_cast <new_type> (expre...

2016-07-19 17:17:41

阅读数 1955

评论数 0

原创 Unix系统编程(8) - I/O多路复用之epoll(Linux)

1. epoll的由来epoll是在Linux 2.6.28内核提出的,是select和poll的强化升级版本。相比select和poll,epoll更灵活,没有描述符限制。epoll在Unix中是没有的。 epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个...

2016-07-19 15:58:10

阅读数 970

评论数 0

原创 Unix系统编程(7) - I/O多路复用之poll

poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。 poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符...

2016-07-19 15:38:04

阅读数 920

评论数 0

原创 Unix系统编程(6) - I/O多路复用之select

1. I/O多路复用基本思路I/O多路复用就是让应用程序可以同时对多个I/O端口进行监控以判断其上的操作是否可以进行,达到时间复用的目的。由于I/O多路复用是在单一进程的上下文中的,因此每个逻辑流程都能访问该进程的全部地址空间,所以开销比多进程低得多。由于I/O多路复用都是在单一进程中进行的,所以...

2016-07-17 15:19:14

阅读数 944

评论数 0

原创 Unix系统编程(5) - 多线程并发服务器

1. 多线程 & 多进程线程是进程内的独立执行实体和调度单元。又称为“轻量级”进程。创建线程比创建进程要快10~100倍(数据待考证),又因为一个进程下的所有线程都共享一些内核资源,相比多进程并发服务器来说,多线程并发服务器在节省资源上比多进程并发服务器更有优势。 线程共享资源与独占资源...

2016-07-16 08:48:56

阅读数 743

评论数 0

原创 Unix系统编程(4) - 多进程并发服务器

1. 迭代服务器 & 并发服务器服务器按照 处理方式 来看可以分为: - 迭代服务器 迭代服务器只能一次处理一个客户的请求。也就是说在服务器响应一个客户请求时,如果有另一个客户发起请求是不能得到及时响应的。下图是一个典型的迭代服务器处理流程。 - 并发服务器 并发服务器...

2016-07-14 20:42:20

阅读数 1222

评论数 0

转载 让你不再害怕指针

(0)让你不再害怕指针--复杂类型说明 要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,所以我总结了一下其原则: 从变量名处起,根据运...

2016-07-13 16:22:35

阅读数 789

评论数 0

原创 设计模式学习(代理模式)

代理模式是为其他对象提供一种代理以控制对这个对象的访问。 #include <iostream> using namespace std;class Interface { public: virtual void Request() = 0; };class RealC...

2016-07-07 14:46:53

阅读数 480

评论数 0

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