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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hongmoview.cpp

?? 虹膜圖像預處理
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
		for(j = 0; j < nWidth; j++)
		{
			if((i-temp_2)*(i-temp_2)+(j-temp_3)*(j-temp_3)>(temp_4+80)*(temp_4+80))
            {
				pUnchEdge[i*nWidth+j] = 0;
			}
		}
	}
	for(i = 0; i < nHeight; i++)
	{
		for(j = 0; j < nWidth; j++)
		{
			if(i*nWidth+j>(temp_2+temp_4)*nWidth)
            {
				pUnchEdge[i*nWidth+j] = 0;
			}
		}
	}
	/*************************************************/
    // 確定外圓半徑范圍
	int temp3 = 90;
    int temp4 = 120;
	int temp_5 = 0;
	int temp_6 = 0;
	int temp_7 = 0;
	// 調用Hough()函數提取外圓圓心和半徑
	Hough(temp3,temp4,nWidth,nHeight,CosTheta,SinTheta,pUnchEdge,temp_5,temp_6,temp_7);
	//在原圖像上用Bresenham畫圓算法生成大圓
    Bresenham(temp_5,temp_6,temp_7,nWidth,nHeight,HoughImage);
	/*************************************************/
    for(i = 0; i < nHeight; i++)
	{
		for(j = 0; j < nWidth;j++)
		{
		 pDib->m_lpImage[i*nWidth+j]=HoughImage[i*nWidth+j];
		}
	}	
	/*************************************************/
	// 釋放內存
	delete []pUnchImage;
	pUnchImage = NULL;
	delete []HoughImage;
	HoughImage = NULL;
	delete []pUnchEdge;
	pUnchEdge = NULL;
	delete []CosTheta;
	CosTheta = NULL;
	delete []SinTheta;
	SinTheta = NULL;
	/*************************************************/
	// 設置臟標記
	pDoc->SetModifiedFlag(TRUE);
	// 更新視圖
	pDoc->UpdateAllViews(NULL);	
}

void CHongmoView::OnCaozuoGuiyihua() 
{
	// TODO: Add your command handler code here
	CHongmoDoc * pDoc = (CHongmoDoc *)this->GetDocument();
	CDib * pDib = pDoc->m_pDibInit;
	
	LPBITMAPINFOHEADER lpBMIH=pDib->m_lpBMIH;
	
	// 判斷是否是8-bpp位圖
	if (lpBMIH->biBitCount != 8)
	{
		// 提示用戶
		MessageBox("目前只支持256色位虹膜圖像的邊緣檢測!", "系統提示" ,
			MB_ICONINFORMATION | MB_OK);
		
		// 返回
		return;
	}
	//更改光標形狀
	BeginWaitCursor();
	/*************************************************/
	//循環變量
	int i;
	int j;
	/*************************************************/
	CSize sizeImage = pDib->GetDimensions();
	int nWidth = sizeImage.cx;
	int nHeight= sizeImage.cy;

	int nSaveWidth = pDib->GetDibSaveDim().cx;

	// 開辟內存,存儲圖象數據
	unsigned char * pUnchImage = new unsigned char[nWidth*nHeight];
	unsigned char* HoughImage = new unsigned char[nWidth*nHeight];

	for(i=0; i<nHeight; i++)
	{
		for(j=0; j<nWidth; j++)
		{
			pUnchImage[i*nWidth+j] = pDib->m_lpImage[i*nSaveWidth+j];
		}
	}
	for(i=0; i<nHeight; i++)
	{
		for(j=0; j<nWidth; j++)
		{
			HoughImage[i*nWidth+j] = pDib->m_lpImage[i*nSaveWidth+j];
		}
	}
	// canny算子計算后的結果
	unsigned char * pUnchEdge = new unsigned char[nWidth*nHeight];
	// 導數x的方向指針
	double * CosTheta = new double [nWidth*nHeight];
    // 導數y的方向指針
	double * SinTheta = new double [nWidth*nHeight];
	/*************************************************/
	// 調用Canny()函數對虹膜圖像進行邊緣檢測
	Canny(pUnchImage, nWidth, nHeight, 0.8, 0.44, 0.83, pUnchEdge,CosTheta,SinTheta);
	/*************************************************/
	// 確定內圓半徑范圍
	int temp1 = 30;
    int temp2 = 70;
	int temp_2 = 0;
	int temp_3 = 0;
	int temp_4 = 0;
	// 調用Hough()函數提取內圓圓心和半徑
	Hough(temp1,temp2,nWidth,nHeight,CosTheta,SinTheta,pUnchEdge,temp_2,temp_3,temp_4);
	//在原圖像上用Bresenham畫圓算法生成內圓
	Bresenham(temp_2,temp_3,temp_4,nWidth,nHeight,HoughImage);
 	/*************************************************/
	//去除不必要的邊界點
    for(i = 0; i < nHeight; i++)
	{
		for(j = 0; j < nWidth; j++)
		{
			if((i-temp_2)*(i-temp_2)+(j-temp_3)*(j-temp_3)>temp_4*temp_4 && (i-temp_2)*(i-temp_2)+(j-temp_3)*(j-temp_3)<(temp_4+50)*(temp_4+50))
            {
				pUnchEdge[i*nWidth+j] = 0;
			}
		}
	}
	for(i = 0; i < nHeight; i++)
	{
		for(j = 0; j < nWidth; j++)
		{
			if((i-temp_2)*(i-temp_2)+(j-temp_3)*(j-temp_3)>(temp_4+80)*(temp_4+80))
            {
				pUnchEdge[i*nWidth+j] = 0;
			}
		}
	}
	for(i = 0; i < nHeight; i++)
	{
		for(j = 0; j < nWidth; j++)
		{
			if(i*nWidth+j>(temp_2+temp_4)*nWidth)
            {
				pUnchEdge[i*nWidth+j] = 0;
			}
		}
	}
	/*************************************************/
    // 確定外圓半徑范圍
	int temp3 = 90;
    int temp4 = 120;
	int temp_5 = 0;
	int temp_6 = 0;
	int temp_7 = 0;
	// 調用Hough()函數提取外圓圓心和半徑
	Hough(temp3,temp4,nWidth,nHeight,CosTheta,SinTheta,pUnchEdge,temp_5,temp_6,temp_7);
	//在原圖像上用Bresenham畫圓算法生成大圓
    Bresenham(temp_5,temp_6,temp_7,nWidth,nHeight,HoughImage);
	/*************************************************/
	// 歸一化后圖像的寬度和高度
	int	 nNewWidth = 1024;
	int  nNewHeight = 128;
	// 存儲歸一化后的圖像
	unsigned char *NormalizeImage = new unsigned char[nNewWidth*nNewHeight];
	for(i = 0; i < nNewHeight; i++)
	{
		for(j = 0; j < nNewWidth;j++)
		{
		   NormalizeImage[i*nNewWidth+j] = 0;
		}
	}
	/*************************************************/	
	// 歸一化
	Normalization(NormalizeImage,HoughImage,temp_2,temp_3,temp_4,temp_5,temp_6,temp_7,nWidth,nHeight);
	/*************************************************/
	// 直方圖均衡
	InteEqualize(NormalizeImage,nNewWidth,nNewHeight);
	/*************************************************/
	m_pDibResult = new CDib(CSize(nNewWidth,nNewHeight), 8);
    // 拷貝調色板
	memcpy(m_pDibResult->m_lpvColorTable, pDib->m_lpvColorTable, m_pDibResult->m_nColorTableEntries*sizeof(RGBQUAD));
	// 應用調色板
	m_pDibResult->MakePalette();	
	// 將指針賦值給CDib類的數據
	m_pDibResult->m_lpImage = NormalizeImage;
	
	/**************************************************/
	CString strSaveFileType = "位圖文件 (*.bmp)|*.bmp; *.dib|All Files (*.*)|*.*||";
	CFileDialog FileDlg(FALSE, "*.bmp", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, strSaveFileType);

	CFile fileOpen ;
	if( FileDlg.DoModal() == IDOK ) 
	{
		if(!fileOpen.Open( FileDlg.GetPathName() , CFile::modeCreate|CFile::modeWrite ))
		{
			AfxMessageBox("cannot create the file to save!");
			return;
		}
		if( !m_pDibResult->Write( &fileOpen ) )
		{
			return;
		}
		fileOpen.Close();
	}
	/**************************************************/
    // 顯示歸一化后的圖象
	GUIYIHUA* pDlg;
	pDlg = new GUIYIHUA(NULL,m_pDibResult);
	pDlg->DoModal();
	/*************************************************/
	// 釋放內存
	delete []pUnchImage;
	pUnchImage = NULL;
	delete []HoughImage;
	HoughImage = NULL;
	delete []pUnchEdge;
	pUnchEdge = NULL;
	delete []NormalizeImage;
    NormalizeImage = NULL;
	delete []CosTheta;
	CosTheta = NULL;
	delete []SinTheta;
	SinTheta = NULL;
}

void CHongmoView::OnCaozuoJunheng() 
{
	// TODO: Add your command handler code here
	CHongmoDoc * pDoc = (CHongmoDoc *)this->GetDocument();
	CDib * pDib = pDoc->m_pDibInit;
	
	LPBITMAPINFOHEADER lpBMIH=pDib->m_lpBMIH;
	
	// 判斷是否是8-bpp位圖
	if (lpBMIH->biBitCount != 8)
	{
		// 提示用戶
		MessageBox("目前只支持256色位虹膜圖像的邊緣檢測!", "系統提示" ,
			MB_ICONINFORMATION | MB_OK);
		
		// 返回
		return;
	}
	//更改光標形狀
	BeginWaitCursor();
	/*************************************************/
	//循環變量
	int i;
	int j;
	/*************************************************/
	CSize sizeImage = pDib->GetDimensions();
	int nWidth = sizeImage.cx;
	int nHeight= sizeImage.cy;

	int nSaveWidth = pDib->GetDibSaveDim().cx;

	// 開辟內存,存儲圖象數據
	unsigned char * pUnchImage = new unsigned char[nWidth*nHeight];
	
	for(i=0; i<nHeight; i++)
	{
		for(j=0; j<nWidth; j++)
		{
			pUnchImage[i*nWidth+j] = pDib->m_lpImage[i*nSaveWidth+j];
		}
	}
    /*************************************************/
	//調用InteEqualize()函數進行直方圖均衡
	InteEqualize(pUnchImage,nWidth,nHeight);
	/*************************************************/
	for(i = 0; i < nHeight; i++)
	{
		for(j = 0; j < nWidth;j++)
		{
		 pDib->m_lpImage[i*nWidth+j]=pUnchImage[i*nWidth+j];
		}
	}
	/*************************************************/
	// 釋放內存
	delete []pUnchImage;
	pUnchImage = NULL;	
	// 恢復光標
	EndWaitCursor();	
    // 設置臟標記
	pDoc->SetModifiedFlag(TRUE);
	// 更新視圖
	pDoc->UpdateAllViews(NULL);	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产麻豆精品| 欧美中文字幕久久| 国产精品综合二区| 国产在线观看免费一区| ㊣最新国产の精品bt伙计久久| 中文字幕国产一区二区| 国产精品午夜在线| 亚洲黄色录像片| 日韩专区欧美专区| 亚洲天堂久久久久久久| 亚洲第一搞黄网站| 蜜桃视频免费观看一区| 国产精品一区二区黑丝| 91视频你懂的| 欧美电影一区二区三区| 制服丝袜中文字幕一区| 亚洲免费观看高清完整版在线观看 | 国产福利一区二区三区视频| 老司机精品视频一区二区三区| 国产成人免费网站| 欧美性淫爽ww久久久久无| 久久综合九色综合欧美亚洲| 亚洲欧洲国产专区| 一区二区三区高清| 久久99精品国产麻豆婷婷洗澡| 成人久久视频在线观看| 制服丝袜中文字幕亚洲| 国产精品久久久久7777按摩| 一区二区三区丝袜| 国产精品影视在线观看| 91香蕉视频mp4| 日韩精品一区二区三区四区| ...中文天堂在线一区| 久久久久久免费毛片精品| 亚洲三级免费电影| 国产精品一二三四区| 欧美日韩国产综合久久 | 日本精品一级二级| 欧美一区二区三区不卡| 欧美午夜电影网| 国产精品污污网站在线观看| 日韩和欧美一区二区三区| 91视频免费观看| 在线免费观看日韩欧美| 欧美国产丝袜视频| 美日韩一区二区三区| 色偷偷久久一区二区三区| 久久色在线观看| 亚洲一区二区三区国产| 成人av先锋影音| 国产午夜精品一区二区三区四区| 亚洲mv在线观看| 91麻豆国产在线观看| 亚洲男人天堂av| 91麻豆.com| 国产精品色婷婷久久58| 一区二区三区欧美亚洲| 99久久免费精品高清特色大片| 久久夜色精品国产噜噜av| 日韩国产欧美在线观看| 91香蕉国产在线观看软件| 欧美亚洲综合在线| 亚洲色图一区二区三区| 成人aa视频在线观看| 国产日韩欧美激情| 亚洲色欲色欲www| 国产精品18久久久| 国产亚洲1区2区3区| 久久国产三级精品| 欧美丰满美乳xxx高潮www| 亚洲一区二区成人在线观看| 欧美视频一区在线观看| 久久久国产综合精品女国产盗摄| 国产激情视频一区二区在线观看| 欧美日韩在线播| 日韩国产高清在线| 欧美久久久久久蜜桃| 午夜精品福利在线| 欧美人伦禁忌dvd放荡欲情| 日韩高清不卡一区| 91精品国产综合久久香蕉的特点| 天天综合天天做天天综合| 欧美一激情一区二区三区| 七七婷婷婷婷精品国产| 欧美国产综合一区二区| 99riav一区二区三区| 亚洲综合视频在线| 欧美丰满美乳xxx高潮www| 久久久久久9999| heyzo一本久久综合| 亚洲国产一二三| 欧美一区二区三区成人| 懂色av噜噜一区二区三区av| 国产精品久久久久久久午夜片| 色综合久久综合网欧美综合网| 亚洲国产另类av| 2020国产成人综合网| 国产精品一二三四区| 亚洲一区二三区| 2023国产精品自拍| 色8久久人人97超碰香蕉987| 欧美高清在线精品一区| 欧美日韩中文字幕一区二区| 另类小说欧美激情| 久久综合久久综合九色| 欧美日韩久久一区| 在线观看一区日韩| 色嗨嗨av一区二区三区| 91小视频在线| 日韩欧美色综合| 色系网站成人免费| 国产揄拍国内精品对白| 亚洲综合视频网| 国产欧美精品日韩区二区麻豆天美| 91伊人久久大香线蕉| 麻豆久久久久久久| 亚洲久草在线视频| 国产欧美日韩三区| 日韩一区二区电影| 一本大道av一区二区在线播放| 久久99精品国产.久久久久久 | aaa欧美日韩| 麻豆国产精品视频| 亚洲一区在线观看视频| 久久精品亚洲麻豆av一区二区| 欧美日韩在线不卡| 91视频xxxx| 国产不卡视频一区| 久久超碰97人人做人人爱| 亚洲高清三级视频| ...xxx性欧美| 国产精品美女www爽爽爽| 精品电影一区二区| 欧美一级二级三级乱码| 欧美日韩不卡在线| 色一情一乱一乱一91av| 成人午夜视频免费看| 国产一区二区三区免费观看| 日本视频免费一区| 亚洲成av人片一区二区三区 | 麻豆国产精品官网| 日韩高清一区二区| 日韩精品一区第一页| 亚洲图片欧美视频| 亚洲午夜电影在线| 亚洲一二三专区| 亚洲最新在线观看| 一区二区高清视频在线观看| 亚洲欧美日韩人成在线播放| 中文字幕一区二区在线播放| 国产精品萝li| 亚洲免费大片在线观看| 亚洲女与黑人做爰| 亚洲国产日产av| 亚洲成人av电影| 首页国产欧美日韩丝袜| 日产欧产美韩系列久久99| 男女男精品网站| 国产主播一区二区| 国产91丝袜在线观看| www.欧美.com| 91国产丝袜在线播放| 精品污污网站免费看| 欧美一卡二卡三卡| 久久伊99综合婷婷久久伊| 欧美经典一区二区三区| 亚洲视频中文字幕| 亚洲在线免费播放| 免费av成人在线| 国产成人免费xxxxxxxx| 99热精品一区二区| 欧美日韩一区二区三区在线| 宅男噜噜噜66一区二区66| 久久精品一级爱片| 一区二区三区在线观看视频| 视频在线观看91| 国内精品视频666| 一本色道亚洲精品aⅴ| 欧美日韩一区二区三区视频| 日韩欧美美女一区二区三区| 国产亚洲女人久久久久毛片| 亚洲欧美日韩久久| 久久97超碰色| 成人av电影观看| 91精品麻豆日日躁夜夜躁| 国产情人综合久久777777| 亚洲网友自拍偷拍| 国产成人亚洲精品青草天美| 在线观看网站黄不卡| 精品理论电影在线| 亚洲日韩欧美一区二区在线| 偷拍一区二区三区| 成人免费看黄yyy456| 91精品国产全国免费观看| 久久综合精品国产一区二区三区| 欧美国产精品一区二区三区| 一区二区视频在线| 国产真实乱偷精品视频免| 色综合天天狠狠| 精品国产自在久精品国产|