自定义博客皮肤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)
  • 收藏
  • 关注

原创 橡皮筋类CRectTracker

其响应WM_LBUTTONDOWN和WM_SETCURSOR消息,因此其实现在这两个消息的响应函数内。下面写了一个例程,并进行分析。CRectTracker m_tracker;m_tracker.m_nStyle=CRectTracker::resizeInside|CRectTracker::solidLine|CRectTracker::hitNothing;CPoint pt_st

2014-02-28 20:23:04 682

原创 遍历圆和直线上的点

在图像处理中,经常会遇到已经圆的圆心和半径,或直线的两个端点坐标,如何准确的进行采样?圆的采样:利用中点画圆算法,但得到的点是无序的,对于某些需要有序点的情况并不适用int x=0; int y=r; float d=1.25-r; pointcontainer.push_back(cvPoint(xin.x+x,xin.y+y)); pointcontainer.push_bac

2014-02-28 19:38:46 3206 1

原创 图像分割工作总结(六)opencv的轮廓矩

opencv的轮廓矩在轮廓匹配中用的比较到,在做图像分割有关工作的时候用到矩来计算闭合区域的形心,现对这个知识点做详细的探究p+q阶原点矩和中心距:定义:计算: Void cvMoments(const CvArr*arr,CvMoments*moments, int binary = 0)arr:图像(1-通道或3通道,有COI设置)或者多边形(点的CvSeq或一族点的向

2014-02-28 16:32:35 1230 1

原创 图像分割工作总结(五)opencv遍历图像

(1)间接访问(调用函数访问)效率不高IplImage*src=cvLoadImage(filename,0);CvScalar s=cvGet2D(src,i,j);printf("%f",s.val[0]);cvSet2D(src,i,j,s);(2)直接访问(单通道单字节)IplImage* src=cvLoadImage(filename,0);(uchar*)(sr

2014-02-28 15:08:52 801

原创 关于宏CV_GET_SEQ_ELEM

#define CV_GET_SEQ_ELEM(TYPE,seq,index)\(TYPE*)cvGetSeqElem((CvSeq*)(seq),(index))用法:从所给序列中取出元素的地址,注意:得到的是地址,即指针所以,关键在于序列中存放的是那种类型的数据,若存放的为地址,那用这个宏得到的就是指针的指针。例程:1.序列中存放的为CvPointCvPoint pt=*C

2014-02-28 11:12:54 2911

原创 CvMemStorage,CvSeq,CvContour和cvFindContour的分析

CvSeq源码#define CV_TREE_NODE_FIELDS(node_type) / int flags; /* micsellaneous flags */ / int header_size; /* size of sequence header */

2014-02-28 11:03:02 1474

原创 阈值分割时的一个问题

在采用Ostu阈值分割时,出现一个问题,当图像中大部分像素值近似为0,或近似为255时,就难以得出正确的分割结果,纠结了很久,还以为是分割算法写错了!后来看到一篇论文,讲到要保证阈值分割算法的稳定性,就要将小于2%和大于98%的像素值除去,即计算灰度直方图时并不算在内。  根据此种方法,做出的阈值分割算法的健壮性有所提高。

2014-02-27 20:43:42 1584

原创 利用opencv显示图像 和SetImageROI函数

这好像是个很简单的问题,网上利用opencv显示图像的代码大都是利用opencv已经删除的类CvvImage中的函数实现的,但是,它在显示图像的过程中,会根据DC的大小而缩放,这是浏览器的习惯,不符合图像处理的习惯,而且也不利于人机交互。因此,必须重写一个1:1显示的代码。

2014-02-27 19:24:46 1310

原创 图像分割工作总结(四)--Slider,edit, spin控件的结合使用

slider control、edit control、spin control的结合使用,读取文件夹,做出图片浏览器的效果  对slider control 实例化一个对象,其响应消息:WM_HSCROLL                      CSliderCtrl m_slider;                   m_slider.SetRange(int nM

2014-02-27 18:39:57 757

原创 图像分割工作总结(三)--文件夹,文件的创建与删除

文件夹的创建、删除以及遍历创建单级文件夹 CreateDirectory(char *,NULL);删除文件夹:                   (1)文件夹为空,直接用RemoveDirectory(LPCTSTR lpPathName)                   (2)文件夹非空,MFC中没有现成的封装函数,做了一个删除子目录中没有文件夹的封装,子目录中含

2014-02-27 18:38:49 510

原创 图像分割工作总结(二)字符串

CString 中的几个操作函数  GetBuffer() 返回一个const char* 指针   //转换为CString(暂无测试出来)   CString cstr;  char* ch="jiayou";  std::string str="zhanghui";  cstr.Format(_T("%s"),ch);  cstr.Format(_T("%s"),

2014-02-27 18:36:26 574

原创 图像分割工作的总结(一)

做了两个月的图像分割,主要工具为:MFC(VS2010)、opencv2.3.1、ITK4.3.1、VTK5.8.0,现做如下知识性的总结一、配置问题  1.opencv2.3.1 下载已编译的库,设置一下计算机的环境变量,然后直接在VS中包含一下库文件即可。  2.ITK和VTK使用CMake编译二、程序(MFC)1. 打开文件及文件夹,定制对话框   

2014-02-27 10:10:52 868

原创 关于cvSnakeImage函数的问题

1.初始轮廓为圆,但演化后的轮廓内部却总有线原因:输入cvSnakeImage的初始轮廓点是有序的,但我输入的轮廓因为用的中点生成圆算法,所以是无序的。换一种圆生成算法就不会出现这种错误了。 2.cvSnakeImage中的三个参数alpha, beta,  gamma(1)范围都是0~1(2)gamma是图像越大越好(3) CvSize win是搜索范围,越大得到的点

2014-02-23 23:58:13 1489

原创 vector迭代器的begin()和end()

参考博客:http://blog.csdn.net/kjing/article/details/6936325迭代器和反向迭代器使用时:end()永远指向最后一个元素的下一个位置;若容器为空时,迭代器的begin()和end()指向位置相同,而后即使再给容器赋值,迭代器的begin()指向,仍然为空。错误范例:#include #include void pri

2014-02-23 12:01:29 6050

原创 opencv中的snake模型函数

opencv中的snake函数:cvSnakeImage在头文件#include 中

2014-02-22 22:46:45 4129

原创 opencv遍历图像

刚开始参照《opencv教程基础篇》27页的程序,写了遍历像素的程序:for{int h=0;hheigt;h++}    for(int w=0;w=src->width;w++)        {           src->imagedata[src->width*h+w]=。。。。       }结果不对,参照下面博客写了程序http://blog.csdn.

2014-02-20 21:57:07 534

原创 opencv查找凸包

参考博客:http://blog.csdn.net/augusdi/article/details/9022627#comments但是,该文中有利用各点做圆的部分,不理解有什么用处,我的程序如下(包含了大津阈值分割):#include #include #include #include int main( int argc, char** argv ){  Ip

2014-02-20 21:51:25 698

原创 opencv中cvFindContours函数两个测试程序

#include #include #include #include #define CVX_RED CV_RGB(0xff, 0x00, 0x00)  #define CVX_GREEN CV_RGB(0x00, 0xff, 0x00)  #define CVX_BLUE CV_RGB(0x00, 0x00, 0xff)  int main( int argc, c

2014-02-20 15:13:14 1067

原创 opencv编程时的三个错误

这个问题出现在openc(2.3.1)和MFC混合编程时,解决方法是在附加依赖项中添加动态库opencv_calib3d231d.lib opencv_contrib231d.lib opencv_core231d.lib opencv_features2d231d.lib opencv_flann231d.libopencv_gpu231d.lib opencv_hi

2014-02-16 21:32:51 799

原创 opencv中图像显示的问题

http://wenwen.soso.com/z/q224981423.htm

2014-02-15 18:17:36 499

转载 MFC判断一个点是否在一个区域内

1.判断一点是否在矩形区域内的方法:   CRect rc (point_1,point_2);//构造矩形区域调用CRect::PtInRect    BOOL flag = rc.PtInRect(point_key);    if (flag)    {             点point_key在构造的矩形区域内;    }   else     

2014-02-15 10:10:23 4572

原创 MFC 中 删除一个非空文件夹

1.空文件夹的删除MFC中提供了删除文件夹的一个封装函数 RemoveDirectory(LPCTSTR lpPathName)2.非空文件夹的删除首先将文件夹下所有内容删除,再调用RemoveDirectory(LPCTSTR lpPathName)void myDeleteDirectory(CString directory_path)//删除一个文件夹下的所有内

2014-02-14 16:59:13 718

原创 MFC中CRect和opencv中CvRect的区别

CRext(int l, int t, int r, int b )   分别指明左上角坐标和右下角坐标MFC的CRect类的bottom,left其实并不包含在矩形框内CRect的left和right是左闭右开,比如某图像只有一个像素,那么left是0,right是1,宽度是right-left。设置left和right有时容易造成误解,容易让人误以为宽度等于right-left+1,r

2014-02-14 14:52:02 2606

原创 在WIN32控制台程序中使用MFC头文件

勾选“use MFC in a shared dll”,包含头文件#include"afx.h"

2014-02-14 14:45:16 963

原创 e:\vs2010\mitk\mitk\MImage.h(4): error C2011: 'MImage' : 'class' type redefinition

出现了类的重复定义,原因是在头文件和cpp文件中重复包含了定义类MImage的头文件

2014-02-14 12:42:01 867

转载 MFC-控件大全-Slider Control

MFC-控件大全-Slider Con所有的控件的创建基本都是同一套道路;第一步:.h中创建一个CSliderCtrl 类的对象 ;CSliderCtrl m_ctrlSlider;第二步:.cpp中的void CMyDlg::DoDataExchange(CDataExchange* pDX)函数进行初始化控件;//初始化控件void CMyDlg::

2014-02-14 09:49:22 607

转载 MFC对话框消息传递顺序

MFC应用程序中处理消息的顺序,创建窗口的过程关闭窗口的顺序(非模态窗口),打开模式对话框的函数调用顺序..2007-12-06 19:23MFC应用程序中处理消息的顺序1.AfxWndProc()      该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供

2014-02-13 11:23:52 638

转载 CString类常用方法---GetLength(),strlen(),IsEmpty(),Empty()

int GetLength( ) const;   //得到字符串的字节数(并不都是个数,如汉字一个字占两个字节)int strlen( const char *string ); //计算参数字符串里面字节的个数并返回BOOL IsEmpty( ) const; //如果字符串含有字符就返回假,如果是个空字符串就返回真void Empty( );                 //

2014-02-12 21:07:07 2655

转载 MFC文件遍历类CFileFind例程

void CDicomViewerDlg::OnBnClickedButtonFindfile(Cstring root)//实现对文件的遍历{ CFileFind myFile; CString FilePath; if (root.Right(1)!="//") { root+="//"; }

2014-02-12 18:19:29 667

转载 MFC中Spin Control,Slider Control,Edit Control控件结合使用示例

很多时侯我们希望某个参数的更改方式,对于用户来说应该尽可能友好。这里给出样例,对于灰度阈值这个参数,实现既能通过滑动调节,又能够通过输入直接给出,同时还可以用按钮微调。这三个控件之中有一个改变,另外的也会响应。消息循环有3个    ON_WM_HSCROLL()    ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN2, &ParAdjust::OnDeltapos

2014-02-12 17:59:11 2214

原创 VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x

在MFC混合编程中增加了一个自己写的类,结果出现错误:VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x下面是彻底解决方法:在工程的stdafx.h中添加(如有类似语句,需注释掉)#ifndef WINVER // Allow use

2014-02-08 12:59:49 764

空空如也

空空如也

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

TA关注的人

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