亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? k_averagedoc.cpp

?? K_meansVC++可視化源代碼 程序的使用方法簡單就不介紹了! 幫助文件還沒制作! 不好意思!
?? CPP
字號(hào):
// K_averageDoc.cpp : implementation of the CK_averageDoc class
//

#include "stdafx.h"
#include "K_average.h"

#include "K_averageDoc.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CK_averageDoc

IMPLEMENT_DYNCREATE(CK_averageDoc, CDocument)

BEGIN_MESSAGE_MAP(CK_averageDoc, CDocument)
	//{{AFX_MSG_MAP(CK_averageDoc)
	ON_COMMAND(ID_MENUI_KAVERAGE, OnMenuiKaverage)
	ON_COMMAND(ID_MENUI_SAVE_CLASSRESULT, OnMenuiSaveClassresult)
	ON_COMMAND(ID_MENUI_RESET, OnMenuiReset)
	ON_COMMAND(ID_MENUI_SAVERESULT, OnMenuiSaveresult)
	ON_COMMAND(ID_MENUI_DUOLEI, OnMenuiDuolei)
	ON_COMMAND(ID_MENUI_MULTIEPYSAVE, OnMenuiMultiepysave)
	ON_COMMAND(ID_MENUI_HELP, OnMenuiHelp)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CK_averageDoc construction/destruction

CK_averageDoc::CK_averageDoc()
{
	// TODO: add one-time construction code here

}

CK_averageDoc::~CK_averageDoc()
{
}

BOOL CK_averageDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;

	// TODO: add reinitialization code here
	// (SDI documents will reuse this document)

	return TRUE;
}



/////////////////////////////////////////////////////////////////////////////
// CK_averageDoc serialization

void CK_averageDoc::Serialize(CArchive& ar)
{
	if (ar.IsStoring())
	{
		// TODO: add storing code here
	}
	else
	{
		// TODO: add loading code here
	}
}

/////////////////////////////////////////////////////////////////////////////
// CK_averageDoc diagnostics

#ifdef _DEBUG
void CK_averageDoc::AssertValid() const
{
	CDocument::AssertValid();
}

void CK_averageDoc::Dump(CDumpContext& dc) const
{
	CDocument::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CK_averageDoc commands

BOOL CK_averageDoc::OnOpenDocument(LPCTSTR lpszPathName) 
{
	if (!CDocument::OnOpenDocument(lpszPathName))
		return FALSE;
	FILE *file_swatch;   //實(shí)驗(yàn)數(shù)據(jù)文件文件
	file_swatch=fopen(lpszPathName,"rt"); //以讀的方式打開樣本文件
	int num_swatch,num_class;			//實(shí)驗(yàn)數(shù)據(jù)數(shù)目和類別數(shù)目
	if (file_swatch==NULL)
	{
		AfxMessageBox("文件不能正常打開!",MB_OKCANCEL,NULL);
		return false;
	}
	fscanf(file_swatch,"%d%d",&num_swatch,&num_class);
	for (int i=0;i<num_swatch;i++)
	{
		fscanf(file_swatch,"%d%d",&feature_point.x,&feature_point.y);
		vec_feature_point.push_back(feature_point);

	}
	UpdateAllViews(NULL);
	
	// TODO: Add your specialized creation code here
	fclose(file_swatch);
	return TRUE;
}

void CK_averageDoc::OnMenuiKaverage() 
{
	BOOL flags=FALSE;
	CPoint m_ptz1; //第一類初始中心
	CPoint m_ptz2;//第二類初始中心
	CPoint m_pt_tmp;
	m_ptz1=vec_feature_point[0];//賦初始值
	m_ptz2=vec_feature_point[1];
	vec_point1.push_back(m_ptz1);
	vec_point2.push_back(m_ptz2);
	float x1,y1,x2,y2;			//the center coordinate(x,y) of the two class
	float x1_tmp,y1_tmp,x2_tmp,y2_tmp;//中心臨時(shí)變量 
	float dist1,dist2; //the distance to the center of the two class
	HCURSOR m_hcur;
	m_hcur=::SetCursor(LoadCursor(NULL,IDC_WAIT));
	x1=m_ptz1.x;y1=m_ptz1.y;//中心初始賦值
	x2=m_ptz2.x;y2=m_ptz2.y;//中心初始賦值
	vec_point_class.clear();
	do 
	{
		for (int i=0;i<vec_feature_point.size();i++)
		{	
			dist1=(x1-vec_feature_point[i].x)*(x1-vec_feature_point[i].x)+
				(y1-vec_feature_point[i].y)*(y1-vec_feature_point[i].y);
			dist2=(x2-vec_feature_point[i].x)*(x2-vec_feature_point[i].x)+
				(y2-vec_feature_point[i].y)*(y2-vec_feature_point[i].y);
			m_pt_tmp.x=vec_feature_point[i].x;
			m_pt_tmp.y=vec_feature_point[i].y;
			if (dist1<=dist2) 
			{
			
				vec_point1.push_back(m_pt_tmp);
			}
			else
			{
				vec_point2.push_back(m_pt_tmp);

			}

		}
		float total1=0;float total2=0;
		for (int m=0;m<vec_point1.size();m++)
		{	
			total1+=vec_point1[m].x;
			total2+=vec_point1[m].y;
		}
		int num_vec1;
		num_vec1=vec_point1.size();
		x1_tmp=total1/num_vec1;
		y1_tmp=total2/num_vec1;

		float total3=0;float total4=0;
		for (int n=0;n<vec_point2.size();n++)
		{
			total3+=vec_point2[n].x;
			total4+=vec_point2[n].y;
		}
		int num_vec2;
		num_vec2=vec_point2.size();
		x2_tmp=total3/num_vec2;
		y2_tmp=total4/num_vec2;

		if (x1!=x1_tmp||y1!=y1_tmp||x2!=x2_tmp||y2!=y2_tmp) 
		{
			x1=x1_tmp;y1=y1_tmp;x2=x2_tmp;y2=y2_tmp;
			vec_point2.clear();
			vec_point1.clear();
			flags=true;	
		}
		else
		{
			flags=false;
		}
	} 
	while(flags);


	::SetCursor(m_hcur);
	UpdateAllViews(NULL);
}

BOOL CK_averageDoc::OnSaveDocument(LPCTSTR lpszPathName) 
{
	// TODO: Add your specialized code here and/or call the base class
	FILE *vec_file;
	vec_file=fopen(lpszPathName,"wt");
	int num_swatch,num_class=2;
	num_swatch=vec_feature_point.size();
	fprintf(vec_file,"%d  %d\n",num_swatch,num_class);
	for (int i=0;i<vec_feature_point.size();i++)
	{
		fprintf(vec_file,"%d  %d\n",vec_feature_point[i].x,vec_feature_point[i].y);
	}

	fclose(vec_file);
	return true;
//	return CDocument::OnSaveDocument(lpszPathName);
}

void CK_averageDoc::OnMenuiSaveClassresult() 
{
	// TODO: Add your command handler code here
	CFileDialog save_result_filedlg(FALSE,"txt",NULL,0,"(文本文件*.txt)|*.txt|DATA型文件(*.dat)|*.dat|所有文件(*.*)|*.*||",NULL);
	CString  sav_filname;
	LPCTSTR lpszPathName;
	FILE *sav_result_file;
	int num_vec_point1,num_vec_point2,num_total;
	int num_class=2;
	num_total=vec_feature_point.size();
	num_vec_point1=vec_point1.size();
	num_vec_point2=vec_point2.size();
	if (save_result_filedlg.DoModal()==IDOK) 
	{
		sav_filname=save_result_filedlg.GetPathName();
		 lpszPathName=(LPCTSTR)sav_filname;
		sav_result_file=fopen(lpszPathName,"wt");
		fprintf(sav_result_file,"/**********************************************************************************/\n\n");
		fprintf(sav_result_file,"           /*版權(quán)所有*/\n           /*盜版不究*/\n          /\n\n");
		fprintf(sav_result_file,"/**********************************************************************************/\n\n");
		fprintf(sav_result_file,"樣本總個(gè)數(shù)為:%d\n樣本分成了%d類\n第一類的樣本個(gè)數(shù)為:%d\n特征向量具體如下:\n",num_total,num_class,num_vec_point1);
		for (int i=0;i<vec_point1.size();i++)
		{
			fprintf(sav_result_file,"%d  %d\n",vec_point1[i].x,vec_point1[i].y);
		}
		fprintf(sav_result_file,"第二類樣本個(gè)數(shù)為:%d\n特征向量具體如下:\n",num_vec_point2);
		for (int j=0;j<vec_point2.size();j++) 
		{
			fprintf(sav_result_file,"%d  %d\n",vec_point2[j].x,vec_point2[j].y);
		}
		fclose(sav_result_file);
		return;
	}
	else if (save_result_filedlg.DoModal()==IDCANCEL) 
	{
		return;
	}


}

void CK_averageDoc::OnMenuiReset() 
{
	// TODO: Add your command handler code here
	vec_point2.clear();
	vec_point1.clear();
	vec_feature_point.clear();
	vec_point_class.clear();
	UpdateAllViews(NULL);
}

void CK_averageDoc::OnMenuiSaveresult() 
{
	// TODO: Add your command handler code here
	CFileDialog save_result_filedlg(FALSE,"txt",NULL,0,"(文本文件*.txt)|*.txt|DATA型文件(*.dat)|*.dat|所有文件(*.*)|*.*||",NULL);
	CString  sav_filname;
	LPCTSTR lpszPathName;
	FILE *sav_result_file;
	int num_vec_point1,num_vec_point2,num_total;
	int num_class=2;
	num_total=vec_feature_point.size();
	num_vec_point1=vec_point1.size();
	num_vec_point2=vec_point2.size();
	if (save_result_filedlg.DoModal()==IDOK) 
	{
		sav_filname=save_result_filedlg.GetPathName();
		 lpszPathName=(LPCTSTR)sav_filname;
		sav_result_file=fopen(lpszPathName,"wt");
		fprintf(sav_result_file,"/**********************************************************************************/\n\n");
		fprintf(sav_result_file,"           /*版權(quán)所有*/\n           /*盜版不究*/\n          /\n\n");
		fprintf(sav_result_file,"/**********************************************************************************/\n\n");
		fprintf(sav_result_file,"樣本總個(gè)數(shù)為:%d\n樣本分成了%d類\n第一類的樣本個(gè)數(shù)為:%d\n特征向量具體如下:\n",num_total,num_class,num_vec_point1);
		for (int i=0;i<vec_point1.size();i++)
		{
			fprintf(sav_result_file,"%d  %d\n",vec_point1[i].x,vec_point1[i].y);
		}
		fprintf(sav_result_file,"第二類樣本個(gè)數(shù)為:%d\n特征向量具體如下:\n",num_vec_point2);
		for (int j=0;j<vec_point2.size();j++) 
		{
			fprintf(sav_result_file,"%d  %d\n",vec_point2[j].x,vec_point2[j].y);
		}
		
	}
	fclose(sav_result_file);
}
/*
解決分成多類的問題,可以動(dòng)態(tài)更改分成的類別
*/
void CK_averageDoc::OnMenuiDuolei() 
{
	// TODO: Add your command handler code here
	BOOL flags=FALSE;
	CPoint m_pt_tmp;
	CclassDlg m_classdlg;
	HCURSOR m_hcur;
	vec_point2.clear();
	vec_point1.clear();
	if (m_classdlg.DoModal()==IDOK)
	{
		m_class_num=m_classdlg.m_numclass;
		m_first_center=m_classdlg.m_center;
		float *x1= new float[m_class_num];
		float*y1=new float[m_class_num];			//the center coordinate(x,y) of the two class
		float *x1_tmp=new float[m_class_num];
		float *y1_tmp=new float[m_class_num];//中心臨時(shí)變量 
//		Cvec_pt1 *vec_mypt=new Cvec_pt1[m_class_num];
		m_hcur=::SetCursor(LoadCursor(NULL,IDC_WAIT));
		for (int num=0;num<m_class_num;num++)//獲取初始特征中心
		{
			x1[num]=vec_feature_point[num+m_first_center-1].x;
			y1[num]=vec_feature_point[num+m_first_center-1].y;
		}
		do 
		{	
			vec_point_class.resize(m_class_num);
			for (int i=0;i<vec_feature_point.size();i++)
			{
				float *dist=new float[m_class_num]; //the distance to the center of the two class
				for (int j=0;j<	m_class_num;j++)
				{
					dist[j]=(x1[j]-vec_feature_point[i].x)*(x1[j]-vec_feature_point[i].x)+
						(y1[j]-vec_feature_point[i].y)*(y1[j]-vec_feature_point[i].y);//計(jì)算到中心距離
					m_pt_tmp.x=vec_feature_point[i].x;						//獲取樣本特征向量
					m_pt_tmp.y=vec_feature_point[i].y;
				}
				float dist_tmp=dist[0];
				int dist_min_hao;
				for (int k=0;k<m_class_num;k++)					//遍歷所有類別
				{	
					if (dist[k]<=dist_tmp)						//比較到各個(gè)類別中心的距離
					{
						dist_tmp=dist[k];
						dist_min_hao=k;                          //記錄符合要求類別號(hào)
						
					}

				}
				delete[]dist;
				vec_point_class[dist_min_hao].push_back(m_pt_tmp); //將樣本插入到符合要求的類別中

			}
			float *total1=new float[m_class_num];
			float *total2=new float[m_class_num];
			memset(total1,0,m_class_num*sizeof(float));            //設(shè)置初始值為零
			memset(total2,0,m_class_num*sizeof(float));

			flags=FALSE;//標(biāo)志中心是否改變,初始狀態(tài)為未改變
			for (int vec1_num=0;vec1_num<m_class_num;vec1_num++)	//遍歷所有樣本類別
			{
				for (int m=0;m<vec_point_class[vec1_num].size();m++)
				{	total1[vec1_num]+=vec_point_class[vec1_num][m].x;//樣本特征求和
					total2[vec1_num]+=vec_point_class[vec1_num][m].y;
				}
				int num_vec1;
				num_vec1=vec_point_class[vec1_num].size(); //計(jì)算某一類中樣本數(shù)量
				x1_tmp[vec1_num]=total1[vec1_num]/num_vec1;//計(jì)算新的中心
				y1_tmp[vec1_num]=total2[vec1_num]/num_vec1;

				if (x1[vec1_num]!=x1_tmp[vec1_num]||y1[vec1_num]!=y1_tmp[vec1_num]) //檢查中心是否更改
				{
					x1[vec1_num]=x1_tmp[vec1_num];
					y1[vec1_num]=y1_tmp[vec1_num];
					vec_point_class[vec1_num].clear();  //清除小容器中的樣本數(shù)據(jù)
					flags=true;	
				}
//				else{flags=false;}
			}
			if (flags==TRUE) 	{vec_point_class.clear();} //把大容器中的所有小容器清空
			delete[]total1;//刪除變量
			delete[]total2;

		} 
		while(flags);
		::SetCursor(m_hcur);    //恢復(fù)光標(biāo)
		delete[]x1;delete []y1; //刪除變量
		delete[]x1_tmp;delete []y1_tmp;

	}



	UpdateAllViews(NULL);

}
//////////////////////////////////////////////////////////////////////////
/* 
save the result of classfication
*/
void CK_averageDoc::OnMenuiMultiepysave() 
{
	// TODO: Add your command handler code here
		CFileDialog save_result_filedlg(FALSE,"txt",NULL,0,"(文本文件*.txt)|*.txt|DATA型文件(*.dat)|*.dat|所有文件(*.*)|*.*||",NULL);
	CString  sav_filname;
	LPCTSTR lpszPathName;
	FILE *sav_result_file;
	int num_vec_point,num_vec;
	num_vec_point=vec_feature_point.size();
	num_vec=vec_point_class.size();
	if (save_result_filedlg.DoModal()==IDOK) 
	{
		sav_filname=save_result_filedlg.GetPathName();
		 lpszPathName=(LPCTSTR)sav_filname;
		sav_result_file=fopen(lpszPathName,"wt");
		fprintf(sav_result_file,"/**********************************************************************************/\n\n");
		fprintf(sav_result_file,"           /*版權(quán)所有*/\n           /*盜版不究*/\n          /\n\n");
		fprintf(sav_result_file,"/**********************************************************************************/\n\n");
		fprintf(sav_result_file,"樣本總個(gè)數(shù)為:%d\n分成的類別數(shù)目為:%d\n\n",num_vec_point,num_vec);
		for (int i=0;i<vec_point_class.size();i++) 
		{
			fprintf(sav_result_file,"/////////////////////////////////////////////////////////////////////////////////\n");
			fprintf(sav_result_file,"這第%d類樣本具體結(jié)果如下:\n本類樣本數(shù)量為:%d\n特征向量為:\n",i+1,vec_point_class[i].size());
			for (int j=0;j<vec_point_class[i].size();j++)
			{
				fprintf(sav_result_file,"%d  %d\n",vec_point_class[i][j].x,vec_point_class[i][j].y);
			}
				
		}
	}
	fclose(sav_result_file);
}

void CK_averageDoc::OnMenuiHelp() 
{
	// TODO: Add your command handler code here
	ShellExecute(NULL,"open","幫助文件.CHM",NULL,NULL,SW_SHOW);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产性天天综合网| 久久久久久夜精品精品免费| 激情深爱一区二区| 亚洲精品中文字幕乱码三区| 亚洲视频精选在线| 日韩视频一区二区| 欧美综合一区二区三区| 成人免费视频视频| 国产在线视频一区二区| 亚洲综合色网站| 亚洲欧洲www| 国产免费久久精品| 欧美精品一区二区不卡 | 国产成人精品www牛牛影视| 亚洲午夜精品在线| 亚洲男人的天堂在线aⅴ视频| 久久久一区二区三区| 日韩一区二区在线看| 欧美日韩你懂的| 欧美图片一区二区三区| 色综合久久精品| av激情亚洲男人天堂| 国产福利电影一区二区三区| 激情综合色播激情啊| 日韩电影在线观看网站| 亚洲成人av在线电影| 亚洲综合图片区| 一区二区三区免费看视频| 国产精品国产三级国产三级人妇| 26uuu亚洲综合色欧美| 日韩精品一区国产麻豆| 欧美一区二区三区日韩| 欧美人伦禁忌dvd放荡欲情| 欧美综合在线视频| 欧美三级一区二区| 欧美天堂一区二区三区| 欧美日韩国产高清一区二区| 欧美日韩免费在线视频| 欧美福利电影网| 日韩欧美国产一二三区| 精品久久人人做人人爰| 久久综合中文字幕| 国产网站一区二区| 亚洲欧洲成人av每日更新| 亚洲精品国产无天堂网2021| 亚洲一级在线观看| 偷拍一区二区三区| 免费欧美日韩国产三级电影| 精品亚洲成a人| 国产成人精品亚洲日本在线桃色| 不卡视频在线看| 在线看国产一区| 在线播放国产精品二区一二区四区| 制服丝袜av成人在线看| 日韩三级免费观看| 国产日韩欧美亚洲| 亚洲精品亚洲人成人网在线播放| 亚洲一区二区三区中文字幕| 强制捆绑调教一区二区| 国产精品1024久久| 色综合久久综合网欧美综合网| 亚洲欧洲成人精品av97| 亚洲一二三四在线| 奇米色一区二区| 岛国av在线一区| 色综合色综合色综合| 91精品中文字幕一区二区三区| 欧美zozo另类异族| 国产精品高潮呻吟| 亚洲国产一区二区视频| 国产一区二区三区观看| 91尤物视频在线观看| 欧美猛男gaygay网站| 久久这里都是精品| 亚洲激情自拍视频| 久久99精品国产麻豆婷婷洗澡| 国产成人h网站| 欧美日韩一级黄| 精品国产精品一区二区夜夜嗨| 国产精品嫩草影院com| 天天操天天综合网| 成人动漫在线一区| 91麻豆精品国产| 1024亚洲合集| 韩日av一区二区| 欧美色综合天天久久综合精品| 久久日一线二线三线suv| 亚洲一区二区av电影| 顶级嫩模精品视频在线看| 欧美日韩精品是欧美日韩精品| 欧美国产综合一区二区| 日韩国产欧美在线视频| 色综合久久综合网97色综合| 26uuu国产电影一区二区| 亚洲国产精品久久久久婷婷884| 国产一区二区h| 91精品国产91热久久久做人人| 中文字幕一区三区| 国产乱妇无码大片在线观看| 欧美人与z0zoxxxx视频| 亚洲欧美日韩国产中文在线| 国产福利一区在线观看| 日韩精品一区二区在线观看| 亚洲午夜久久久久久久久电影院| 成人高清免费观看| 久久精品亚洲精品国产欧美| 日韩中文字幕不卡| 91久久久免费一区二区| 国产精品青草综合久久久久99| 美国毛片一区二区| 在线播放中文一区| 亚洲高清免费观看高清完整版在线观看 | 亚洲精品一区二区三区四区高清| 亚洲成年人网站在线观看| 99久久国产免费看| 国产精品免费网站在线观看| 极品少妇一区二区| 欧美一区二区三区思思人| 午夜精品一区二区三区三上悠亚| 色就色 综合激情| 亚洲日本va午夜在线影院| 成人一道本在线| 国产精品伦一区| 成人一区在线看| 国产欧美日韩另类一区| 国产精一区二区三区| 2020国产成人综合网| 国产精品99久久久久久有的能看| 精品国产sm最大网站免费看| 精品一区免费av| 精品999久久久| 国产精品亚洲一区二区三区妖精| 久久夜色精品一区| 国产不卡免费视频| 国产精品视频在线看| 本田岬高潮一区二区三区| 激情六月婷婷综合| 国产亚洲短视频| 成人激情午夜影院| 国产精品国产a| 日本久久电影网| 亚洲h在线观看| 日韩一区二区三区视频在线观看| 免费观看久久久4p| 久久你懂得1024| 成人av电影在线| 伊人色综合久久天天人手人婷| 91久久精品日日躁夜夜躁欧美| 亚洲自拍偷拍网站| 欧美人与禽zozo性伦| 久久精品国产久精国产| 久久久美女毛片| av不卡免费在线观看| 一区二区成人在线| 91精品国产乱| 国产suv精品一区二区883| 亚洲区小说区图片区qvod| 欧美三级中文字| 黄色日韩网站视频| 中文字幕一区在线观看| 欧美日韩国产一级| 久99久精品视频免费观看| 国产精品毛片高清在线完整版| 91看片淫黄大片一级| 午夜成人免费视频| 久久久精品日韩欧美| 色婷婷av一区| 精品一二三四在线| 亚洲欧美一区二区在线观看| 91.com在线观看| 国产成人免费视频网站| 亚洲国产成人精品视频| 久久久久综合网| 欧美日韩久久久一区| 国产精品自拍毛片| 亚洲小说春色综合另类电影| 精品国产1区2区3区| 色吊一区二区三区| 久久99久久99精品免视看婷婷 | 日韩精品综合一本久道在线视频| 国产精品一二二区| 天天综合色天天综合色h| 日本一二三不卡| 91精品国产一区二区人妖| 成人午夜免费av| 麻豆成人91精品二区三区| 亚洲欧美日韩在线不卡| www成人在线观看| 欧美裸体一区二区三区| av激情成人网| 国产剧情在线观看一区二区 | 国产福利电影一区二区三区| 亚洲国产人成综合网站| 国产精品久久久一区麻豆最新章节| 欧美日韩和欧美的一区二区| 北条麻妃一区二区三区| 国产在线视频一区二区| 日韩高清欧美激情| 亚洲一区二区三区四区在线免费观看| 国产日韩欧美制服另类|