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

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

?? hongmoview.cpp

?? 虹膜圖像預處理
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// hongmoView.cpp : implementation of the CHongmoView class
//

#include "stdafx.h"
#include "hongmo.h"

#include "hongmoDoc.h"
#include "hongmoView.h"
#include "GlobalApi.h"
#include "GUIYIHUA.h"
#include "Cdib.h"
#include "math.h"
#include <complex>
using namespace std;
#define pi 3.1415927

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

/////////////////////////////////////////////////////////////////////////////
// CHongmoView

IMPLEMENT_DYNCREATE(CHongmoView, CScrollView)

BEGIN_MESSAGE_MAP(CHongmoView, CScrollView)
	//{{AFX_MSG_MAP(CHongmoView)
	ON_COMMAND(ID_CAOZUO_CANNYDETECTION, OnCaozuoCannydetection)
	ON_COMMAND(ID_CAOZUO_DINGWEI, OnCaozuoDingwei)
	ON_COMMAND(ID_CAOZUO_GUIYIHUA, OnCaozuoGuiyihua)
	ON_COMMAND(ID_CAOZUO_JUNHENG, OnCaozuoJunheng)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CHongmoView construction/destruction

CHongmoView::CHongmoView()
{
	// TODO: add construction code here

}

CHongmoView::~CHongmoView()
{
}

BOOL CHongmoView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CScrollView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CHongmoView drawing

void CHongmoView::OnDraw(CDC* pDC)
{
	CHongmoDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	CSize sizeDibDisplay;
	
	if(!pDoc->m_pDibInit->IsEmpty())
	{	
		sizeDibDisplay = pDoc->m_pDibInit->GetDimensions();
		pDoc->m_pDibInit->Draw(pDC,CPoint(0,0),sizeDibDisplay);	
	}	
}

/////////////////////////////////////////////////////////////////////////////
// CHongmoView printing

BOOL CHongmoView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CHongmoView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CHongmoView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CHongmoView diagnostics

#ifdef _DEBUG
void CHongmoView::AssertValid() const
{
	CScrollView::AssertValid();
}

void CHongmoView::Dump(CDumpContext& dc) const
{
	CScrollView::Dump(dc);
}

CHongmoDoc* CHongmoView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CHongmoDoc)));
	return (CHongmoDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CHongmoView message handlers

void CHongmoView::OnInitialUpdate() 
{
//	CView::OnInitialUpdate();
	
	// TODO: Add your specialized code here and/or call the base class
	CScrollView::OnInitialUpdate();

	CHongmoDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	
	CSize sizeTotal = pDoc->m_pDibInit->GetDimensions();

	//已改動
	SetScrollSizes(MM_TEXT, sizeTotal);

	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();
}

void CHongmoView::OnCaozuoCannydetection() 
{
	// 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];
		}
	}	
	// 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);
	/*************************************************/
    for(i = 0; i < nHeight; i++)
	{
		for(j = 0; j < nWidth;j++)
		{
		 pDib->m_lpImage[i*nWidth+j]=pUnchEdge[i*nWidth+j];
		}
	}	
   /*************************************************/
	// 釋放內存
	delete []pUnchImage;
	pUnchImage = NULL;
	delete []pUnchEdge;
	pUnchEdge = NULL;
	delete []CosTheta;
	CosTheta = NULL;
	delete []SinTheta;
	SinTheta = NULL;
	/*************************************************/
	// 恢復光標
	EndWaitCursor();	
    // 設置臟標記
	pDoc->SetModifiedFlag(TRUE);
	// 更新視圖
	pDoc->UpdateAllViews(NULL);	
}

void CHongmoView::OnCaozuoDingwei() 
{
	// 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++)
	{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一级黄色片| 丝袜美腿高跟呻吟高潮一区| 亚洲大尺度视频在线观看| 国产精品资源站在线| 欧美视频一区二区在线观看| 久久久久久久一区| 日韩av一级电影| 日本高清不卡一区| 中文字幕亚洲在| 爽好久久久欧美精品| 色婷婷av一区| 亚洲欧洲av一区二区三区久久| 精品在线你懂的| 在线播放/欧美激情| 亚洲一区二区三区不卡国产欧美| 成人福利视频网站| 欧美成人精品福利| 视频一区欧美精品| 欧美视频一区二区在线观看| 中文字幕一区二区三区不卡在线 | 欧美精品粉嫩高潮一区二区| 一区二区三区日韩欧美精品| 成人av一区二区三区| 久久久久久久久久看片| 激情综合色播五月| 日韩一级片网站| 久久成人免费网| 日韩欧美电影一区| 日本大胆欧美人术艺术动态| 欧美精品一级二级| 亚洲国产美女搞黄色| 在线一区二区视频| 一区二区三区欧美激情| 91黄色激情网站| 一级精品视频在线观看宜春院 | 亚洲一区二区四区蜜桃| 色综合咪咪久久| 一区二区激情小说| 欧美三日本三级三级在线播放| 亚洲一区电影777| 欧美嫩在线观看| 蜜臀av性久久久久蜜臀av麻豆| 欧美一区二区三区四区在线观看| 美国三级日本三级久久99| 精品电影一区二区三区| 国产一区久久久| 国产精品成人免费精品自在线观看| 成+人+亚洲+综合天堂| 亚洲欧洲成人自拍| 欧美色国产精品| 久久精品国产久精国产| 久久久九九九九| 91性感美女视频| 午夜不卡av免费| 精品国精品国产| 成人av一区二区三区| 一区二区三区在线视频播放 | 欧美系列在线观看| 日韩激情视频网站| 久久久久久久综合色一本| www.欧美色图| 日韩av一区二区三区四区| 久久九九全国免费| 色94色欧美sute亚洲13| 日韩电影网1区2区| 国产精品无遮挡| 91精品国产入口在线| 粉嫩av一区二区三区在线播放 | 亚洲男人的天堂av| 欧美一级片在线看| 99久精品国产| 韩国av一区二区三区四区| 亚洲乱码精品一二三四区日韩在线| 6080午夜不卡| 99久久精品国产观看| 理论片日本一区| 亚洲男人的天堂一区二区| 精品日韩一区二区三区| 在线视频欧美区| 国产精品一级片| 蜜臀av性久久久久av蜜臀妖精| 中文字幕一区二区三区不卡| 精品国免费一区二区三区| 91黄色免费看| 成人小视频免费观看| 蜜桃视频一区二区三区| 亚洲精品大片www| 国产精品女上位| 久久午夜色播影院免费高清| 欧美精品一级二级| 在线一区二区三区四区五区 | 麻豆精品在线播放| 一区二区不卡在线播放| 中文字幕乱码日本亚洲一区二区| 911精品产国品一二三产区| 一本高清dvd不卡在线观看| 国产91丝袜在线观看| 久久成人精品无人区| 亚洲成a人片在线不卡一二三区| 中文字幕在线观看一区二区| 国产日产欧美一区二区视频| 亚洲精品在线免费播放| 精品毛片乱码1区2区3区| 欧美一区二区三区视频免费 | 最好看的中文字幕久久| 国产女人aaa级久久久级| 欧美精品一区二区蜜臀亚洲| 日韩欧美中文字幕制服| 91精品国产手机| 91精品一区二区三区在线观看| 91高清视频在线| 欧美日韩国产a| 3d动漫精品啪啪一区二区竹菊| 在线日韩av片| 欧美剧在线免费观看网站| 欧美日韩国产成人在线免费| 在线成人av网站| 日韩午夜电影av| www精品美女久久久tv| 久久精品综合网| 中文字幕av在线一区二区三区| 国产精品视频麻豆| 亚洲欧洲av在线| 亚洲国产成人91porn| 免费成人你懂的| 国产乱子轮精品视频| 国产成人超碰人人澡人人澡| 成人免费视频视频在线观看免费| 91在线免费视频观看| 欧美三级蜜桃2在线观看| 91精品在线一区二区| 国产亚洲女人久久久久毛片| 国产精品国产三级国产三级人妇 | 久久免费午夜影院| 国产精品白丝在线| 亚洲第一电影网| 国产在线精品视频| thepron国产精品| 欧美男人的天堂一二区| 久久综合久色欧美综合狠狠| 亚洲天堂网中文字| 视频一区二区中文字幕| 久草中文综合在线| 北条麻妃国产九九精品视频| 欧美高清一级片在线| 久久久久97国产精华液好用吗| 亚洲精品va在线观看| 麻豆成人在线观看| 99国产精品一区| 欧美一二三区在线观看| 国产精品福利电影一区二区三区四区| 午夜日韩在线电影| 国产成人在线免费观看| 欧美日韩大陆一区二区| 国产欧美精品一区| 日韩国产精品久久久久久亚洲| 暴力调教一区二区三区| 日韩三级伦理片妻子的秘密按摩| 亚洲同性同志一二三专区| 美女尤物国产一区| 欧洲日韩一区二区三区| 国产午夜精品一区二区三区嫩草 | 一区二区在线观看免费视频播放 | 日本韩国欧美一区二区三区| 欧美大片一区二区三区| 亚洲私人黄色宅男| 国产大陆a不卡| 日韩女优视频免费观看| 亚洲激情网站免费观看| 国产999精品久久久久久| 欧美一区日本一区韩国一区| 亚洲综合激情另类小说区| 成人午夜激情视频| 精品日韩欧美一区二区| 亚洲国产精品影院| 91在线观看成人| 国产精品伦理一区二区| 国产精品白丝av| 精品毛片乱码1区2区3区| 日韩精品视频网站| 欧美在线免费观看亚洲| 国产精品超碰97尤物18| 国产成人综合在线播放| 欧美不卡一区二区| 秋霞影院一区二区| 91麻豆精品国产91久久久使用方法 | 欧美午夜片在线观看| 国产欧美1区2区3区| 国产在线国偷精品产拍免费yy| 制服丝袜中文字幕亚洲| 亚洲动漫第一页| 欧美日韩一区久久| 亚洲国产视频a| 精品视频在线免费看| 亚洲人成小说网站色在线| 福利一区二区在线观看| 中文字幕成人av| 成年人午夜久久久| 亚洲欧洲精品一区二区精品久久久| 国产98色在线|日韩|