- 博客(37)
- 资源 (1)
- 收藏
- 关注
转载 C/C++学习笔记1 - 深入了解scanf()/getchar()和gets()等函数
C/C++学习笔记1 - 深入了解scanf()/getchar()和gets()等函数 ---------------------------------------------------- | 问题描述一:(分析scanf()和getchar()读取字符) | ----------------------
2014-09-25 10:28:05 502
转载 霍夫变换
(1)理论之通俗理解:1.在图像中检测直线的问题,其实质是找到构成直线的所有的像素点。那么问题就是从找到直线,变成找到符合y=mx+c的所有(x,y)的点的问题。2.进行坐标系变化y=mx+c,变成c=-xm+b。直线上的点(x1,y1),在转换坐标系后为一条直线。这个原理应该是高中的。 3.直线上每一个点在MC坐标系中都表现为直线,而且,这些直线都相交于一个点,(m,c)。找到
2014-07-21 10:13:51 1336
原创 opencv 调用USB 摄像头
#include "opencv2/opencv.hpp"#include using namespace std;int _tmain(int argc, _TCHAR* argv[]){cvNamedWindow("showWindow");char keyCode; CvCapture *cap = cvCreateCameraCapture(0);/
2014-07-16 17:40:21 1590
转载 STL格式简介
STL只能用来表示封闭的面或者体,stl文件有两种:一种是ASCII明码格式,另一种是二进制格式。ASCII格式ASCII码格式的STL文件逐行给出三角面片的几何信息,每一行以1个或2个关键字开头。在STL文件中的三角面片的信息单元 facet 是一个带矢量方向的三角面片,STL三维模型就是由一系列这样的三角面片构成。整个STL文件的首行给出了文件路径及文件名。在一个 STL文件中
2014-07-10 20:59:12 3208
转载 体绘制技术小结
VTK最初是针对医疗领域的应用而设计的,所以对于医疗的可视化方面,如处理CT的扫描数据等,具有强大的功能。它将在可视化过程中经常遇到的细节屏蔽起来,并封装了一些常用的可视化算法,如将面绘制中常用的MC(Marching Cubes)算法和体绘制中常用的光线投射(Ray-Casting)算法封装成类的形式提供给使用者。这样在进行医学体数据的可视化时就可以直接使用VTK中已提供的相关类。VTK
2014-07-03 18:04:49 1324
原创 vtk 体绘制小结
医学图像三维重建方法可以分为面绘制( Surface Rendering) 和体绘制( Volume Rendering )两大类。面绘制算法中具有代表性的是MC(M a rching Cubes)算法, 它通过对一系列的二维图像进行边界识别等分割原理, 将感兴趣的部分以等值面的方式抽取出来, 从而为用户提供较具真实感的三维图像。这种方法的优点是重建速度较快, 内存资源需求较小, 缺点是易丢失纹理
2014-07-03 11:12:42 3359
转载 ASM 详解
本文转载自ASM是一种基于点分布模型(Point Distribution Model, PDM)的算法。在PDM中,外形相似的物体,例如人脸、人手、心脏、肺部等的几何形状可以通过若干关键特征点(landmarks)的坐标依次串联形成一个形状向量来表示。本文就以人脸为例来介绍该算法的基本原理和方法。首先给出一个标定好68个关键特征点的人脸面部图片,如下所示:
2014-06-18 09:24:43 1010
原创 三维形式显示图像
m=50; n=60; x=zeros(m,1);%生成长度为m的一维数组 y=zeros(n,1);%生成长度为n的一维数组 for i=1:m x(i)=-4.0+i*8.0/m;%对x进行初始化 end for j=1:n y(j)=-4.0+8.0*j/n;%对y进行初始化 end %利用x,y得到
2014-05-30 21:45:17 2736
转载 matlab 中的仿射变换函数
执行一般的二维空间变换包括如下三步:这三步是最基本的步骤1.定义空间变换的参数;2.创建变换结构体TFORM,它定义了你所要执行变换的类型;TFORM结构体包含了执行变换需要的所有参数。你可以定义很多类型的空间变换,包括放射变换affine transformations(如平移translation,缩放scaling,旋转rotation,剪切shearing)、投影变
2014-05-01 10:52:44 18899 1
转载 freeman链码
利用freeman链码对二值图像进行编码,可以表示图像边缘。参考论文:崔倩等《基于细化的Freeman直线识别算法》裘镇宇,危辉《基于Freeman链码的边缘跟踪算法及直线段检测》王平,董玉德,罗喆帅《基于Freeman链码的直线识别方法》1、freeman链码简介首先给出 Freeman编码的定义描述: 任选一个像素点(通常对已细化的图像进行)作为参考点,与其相邻的像
2014-04-23 14:56:57 1271
转载 窄带法
窄带法最初由 D. Chop提出,Adalsteinsson 和 Sethian给出了详细的实现方法。基本思想是只演化位于零水平集周围很窄的一个带状区域水平集函数的值,而无需计算整个搜索空间中每一点的水平集函数值,以此来提高水平集方法的计算效率。如图 3-1所示,黑色的粗实线是当前的零水平集,两条细实线所包围的区域称为窄带区,更新水平集函数的时候,只对窄带区内部的网格点(图中黑色实心点,我们称之为
2014-04-22 15:45:58 1819
转载 MATLAB 下的 Parzen函数 Parzen 窗法概率密度函数估计
在基于熵的音频相似度度量中,用到Parzen窗法对所提取的MFCC参数进行概率密度函数估计,其MATLAB实现如下:function p=Parzen(xi,x,h1,f)%xi为样本,x为概率密度函数的自变量的取值,%h1为样本数为1时的窗宽,f为窗函数句柄%返回x对应的概率密度函数值if isempty(f) %若没有指定窗的类型,就使用正态窗函数
2014-04-13 20:58:35 3418 1
原创 matlab 函数 bwdist
今天用到了函数bw = zeros(5,5); bw(2,2) = 1; bw(4,4) = 1bw = 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
2014-04-13 20:55:33 6058
原创 matlab 和c混合编程-------------------基础
mtalab第一次调用C编程之前,需运行mex操作,此操作在windows系统下是一个bat的批处理文件,在unix系统下是个shell脚本。>> mex -setup //在matlab 的command window下运行此命令Please choose your compiler for building external interface (MEX)
2014-04-11 11:24:10 760
原创 MFC 中非模态对话框和模态对话框的创建
Windows对话框分为两类:模态对话框和非模态对话框。 模态对话框是这样的对话框,当它弹出后,本应用程序其他窗口将不再接受用户输入,只有该对话框响应用户输入,在对它进行相应操作退出后,其他窗口才能继续与用户交互。 非模态对话框则是,它弹出后,本程序其他窗口仍能响应用户输入。非模态对话框一般用来显示提示信息等。我们先创建了连个对话框
2014-04-06 09:29:34 889
原创 vtk 5.10 在 2010 下的安装
1、下载vtk-5.10.zip、vtkdata-5.10.zip、vtkDocHtml-5.10.tar.gz、Cmake 四个文件。2、安装 Cmake 3、解压 vtk-5.10.zip、vtkdata-5.10.zip、到指定文件夹c:\vtk下面。4、在新建文件夹bin,此时c:\vtk下面包含三个文件夹,vtk、vtkdata、bin.5、运行cmak
2014-04-02 12:10:06 794
原创 fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 解决办法
今天在用VS2010 的时候创建了MFC应用程序 但是编译的时候出现了 fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏前段时间编译程序也出现了这个问题,按照网上的办法 对项目属性进行设置项目\属性\配置属性\清单工具\输入和输出\嵌入
2014-03-19 15:04:07 431
转载 cvFindCounter轮廓检测 -------上
一.关键函数1.1 cvFindContours函数功能:对图像进行轮廓检测,这个函数将生成一条链表以保存检测出的各个轮廓信息,并传出指向这条链表表头的指针。函数原型:int cvFindContours( CvArr* image, CvMemStorage* storage, CvSeq** first_contour,
2014-03-01 15:01:46 3575
转载 opencv 之 视频播放控制
获取 摄像头/视频 属性的函数 double cvGetCaptureProperty( CvCapture* capture, int property_id ) CV_CAP_PROP_POS_MSEC - 影片目前位置,为毫秒数或者视频获取时间戳 CV_CAP_PROP_POS_FRAMES - 将被下一步解压/ 获取的帧索引
2014-03-01 10:38:44 519
转载 Opencv 图像处理——平滑处理
Smooth各种方法的图像平滑void cvSmooth( const CvArr* src, CvArr* dst, int smoothtype=CV_GAUSSIAN, int param1=3, int param2=0, double param3=0, double param4=0 );src输入图像.dst输
2014-03-01 10:38:06 586
翻译 Opencv 图像处理——形态学方法
一、图像腐蚀 膨胀 细化的基本原理膨胀和腐蚀这两种操作是形态学处理的基础,许多形态学算法都是以这两种运算为基础的。1 膨胀是以得到B的相对与它自身原点的映像并且由z对映像进行移位为基础的。A被B膨胀是所有位移z的集合,这样,和A至少有一个元素是重叠的。我们可以把上式改写为:结构元素B可以看作一个卷积模板,区别在于膨胀是以集合运算为基础的,卷积是以算术运算为基础的,但两者的处理过程是
2014-03-01 10:37:33 743
转载 Mat 的一些基本的初始化
本文讲解Mat 的一些基本的初始化// m为3*5的矩阵,float型的单通道,把每个点都初始化为1Mat m(3, 5, CV_32FC1, 1);或者 Mat m(3, 5, CV_32FC1, Scalar(1));cout输出为:[1, 1, 1, 1, 1; 1, 1, 1, 1, 1; 1, 1, 1, 1, 1]
2014-03-01 10:36:52 3686
原创 cvCopy与cvCloneImage的区别
CVAPI(void) cvCopy( const CvArr* src, CvArr* dst, const CvArr* mask CV_DEFAULT(NULL) );CVAPI(IplImage*) cvCloneImage( const IplImage* image );如果设定了ROI等参数的时候,cvCopy只是复制被设定的
2014-03-01 10:35:47 417
转载 CvFont的定义和操作
程序用用到的一些字体操作和设置,贴出来备个份,方便查阅。 主要是cvGetTextSize(text, &font, &text_size, &baseline);cvPoint(2,text_size.height+baseline)这样写出的字才对齐得更好些。CvPoint pt;pt.x = point.x - text_size.
2014-03-01 10:31:20 3175
转载 CvMat操作
分配释放矩阵空间综述:OpenCV有针对矩阵操作的C语言函数. 许多其他方法提供了更加方便的C++接口,其效率与OpenCV一样.OpenCV将向量作为1维矩阵处理.矩阵按行存储,每行有4字节的校整.分配矩阵空间:CvMat* cvCreateMat(int rows, int cols, int type);type: 矩阵
2014-03-01 10:29:15 528
转载 OpenCV 图像旋转和缩放
旋转变换公式的推导:如下图, 在2维坐标上,有一点p(x, y) , 直线op的长度为r, 直线op和x轴的正向的夹角为a。 直线op围绕原点做逆时针方向b度的旋转,到达p’ (s,t) 图像旋转和缩放" style="margin:0px; padding:0px; border:medium none; list-style:none; max-width:100%">
2014-03-01 10:26:16 1140
转载 cvSlite 和cvMerge 实现图像的通道分离和混合的说明
void cvSplit(const CvArr* src,CvArr *dst0,CvArr *dst1, CvArr *dst2, CvArr *dst3); 有些时候处理多通道图像时不是很方便,在这种情况下,可以利用cvSplit()分别复制每个通道到多个单通道图像,如果需要,cvSplit()函数将复制src(即源多通道图像)的各个通道到图像dst0、dst1、d
2014-03-01 10:25:24 656
原创 cvConvertScale用法
cvConvertScale用法 ConvertScale使用线性变换转换数组void cvConvertScale( const CvArr* src, CvArr* dst, double scale=1, double shift=0 );#define cvCvtScale cvConvertScale#define cvScale cv
2014-03-01 10:24:14 745
转载 cvCvtColor的用法
cvCvtColor(...),是Opencv里的颜色空间转换函数,可以实现rgb颜色向HSV,HSI等颜色空间的转换,也可以转换为灰度图像。 参数CV_BGR2GRAY是RGB到gray, 参数 CV_GRAY2BGR是gray到RGB. 处理结果是彩色的,则转灰色就是了: void cvCvtColor( const CvArr*
2014-03-01 10:22:41 657
原创 opencv 绘制图像直方图
#include"cv.h"#include"highgui.h"int main(){//1、先读取一副单通道图像 IplImage*scr=cvLoadImage("C:\\111.jpg",0);//2、创建一个直方图结果,为下面计算图像的直方图做准备。int dims=1; int nHistSize = 256
2014-02-27 20:42:47 645
转载 OpenCV实现傅里叶变换
[cpp] view plaincopy"font-size:18px;">#include #include #include #include /************************************************************************** //傅里叶变换
2014-02-25 22:17:18 719
转载 cvAdd()和 cvAddS()函数的使用
函数原型如下:voidcvAdd( const CvArr* src1, const CvArr* src2, CvArr* dst, const CvArr* mask=NULL );src1 第一个原数组 src2 第二个原数组 dst 输出数组 mask 操作的复盖面, 8-bit单通道数组; 只有复盖面指定的输出数组被修改。 函数 cvAdd
2014-02-25 21:12:50 1557
转载 opencv中cvSetData用法
cvConvertScale用法ConvertScale使用线性变换转换数组void cvConvertScale( const CvArr* src, CvArr* dst, double scale=1, double shift=0 );#define cvCvtScale cvConvertScale#define cvScale cvC
2014-02-24 16:32:21 1604
转载 opencv中cvSetData用法
cvSetData的第一个参数是目标图像头,比如像这里的part;第二个参数是要复制的源图像数据的位置;第三个参数是源图像的行长度 #include "stdafx.h"#include "opencv2/opencv.hpp"int _tmain(int argc, _TCHAR* argv[]){ char * filename = "2.jpg"; i
2014-02-24 16:28:44 11618
翻译 关于 cvSlite 和cvMerge 实现图像的通道分离和混合的说明
void cvSplit(const CvArr* src,CvArr *dst0,CvArr *dst1, CvArr *dst2, CvArr *dst3); 有些时候处理多通道图像时不是很方便,在这种情况下,可以利用cvSplit()分别复制每个通道到多个单通道图像,如果需要,cvSplit()函数将复制src(即源多通道图像)的各个通道到图像dst0、dst1、
2014-02-24 15:26:21 621
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人