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

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

?? ch1_1view.cpp

?? VC++數字圖像處理 配套光盤
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
		
		// 重新設置滾動視圖大小
		SetScrollSizes(MM_TEXT, pDoc->GetDocSize());

		// 更新視圖
		pDoc->UpdateAllViews(NULL);
	}
	else
	{
		// 提示用戶
		MessageBox("分配內存失敗!", "系統提示" , MB_ICONINFORMATION | MB_OK);
	}
	
	// 解除鎖定
	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());

	// 恢復光標
	EndWaitCursor();

}

void CCh1_1View::OnGeomZoom() 
{
	// 圖像縮放

	// 獲取文檔
	CCh1_1Doc* pDoc = GetDocument();
	
	// 指向DIB的指針
	LPSTR lpDIB;
	
	// 鎖定DIB
	lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) pDoc->GetHDIB());
	
	// 判斷是否是8-bpp位圖(這里為了方便,只處理8-bpp位圖的縮放,其它的可以類推)
	if (::DIBNumColors(lpDIB) != 256)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的縮放!", "系統提示" , MB_ICONINFORMATION | MB_OK);

		// 解除鎖定
		::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());
		
		// 返回
		return;
	}
	
	// 縮放比率
	float fXZoomRatio;
	float fYZoomRatio;
	
	// 創建對話框
	CDlgGeoZoom dlgPara;
	
	// 初始化變量值
	dlgPara.m_XZoom = 0.5;
	dlgPara.m_YZoom = 0.5;
	
	// 顯示對話框,提示用戶設定平移量
	if (dlgPara.DoModal() != IDOK)
	{
		// 返回
		return;
	}
	
	// 獲取用戶設定的平移量
	fXZoomRatio = dlgPara.m_XZoom;
	fYZoomRatio = dlgPara.m_YZoom;
	
	// 刪除對話框
	delete dlgPara;	
	
	// 創建新DIB
	HDIB hNewDIB = NULL;
	
	// 更改光標形狀
	BeginWaitCursor();
	
	// 調用ZoomDIB()函數轉置DIB
	hNewDIB = (HDIB) ZoomDIB(lpDIB, fXZoomRatio, fYZoomRatio);
	
	// 判斷縮放是否成功
	if (hNewDIB != NULL)
	{
		
		// 替換DIB,同時釋放舊DIB對象
		pDoc->ReplaceHDIB(hNewDIB);

		// 更新DIB大小和調色板
		pDoc->InitDIBData();
		
		// 設置臟標記
		pDoc->SetModifiedFlag(TRUE);
		
		// 重新設置滾動視圖大小
		SetScrollSizes(MM_TEXT, pDoc->GetDocSize());

		// 更新視圖
		pDoc->UpdateAllViews(NULL);
	}
	else
	{
		// 提示用戶
		MessageBox("分配內存失敗!", "系統提示" , MB_ICONINFORMATION | MB_OK);
	}
	
	// 解除鎖定
	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());

	// 恢復光標
	EndWaitCursor();
	
}

void CCh1_1View::OnGeomRota() 
{
	// 圖像旋轉

	// 獲取文檔
	CCh1_1Doc* pDoc = GetDocument();
	
	// 指向DIB的指針
	LPSTR lpDIB;
	
	// 鎖定DIB
	lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) pDoc->GetHDIB());
	
	// 判斷是否是8-bpp位圖(這里為了方便,只處理8-bpp位圖的旋轉,其它的可以類推)
	if (::DIBNumColors(lpDIB) != 256)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的旋轉!", "系統提示" , MB_ICONINFORMATION | MB_OK);

		// 解除鎖定
		::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());
		
		// 返回
		return;
	}
	
	// 縮放比率
	int iRotateAngle;
	
	// 創建對話框
	CDlgGeoRota dlgPara;
	
	// 初始化變量值
	dlgPara.m_iRotateAngle = 90;
	
	// 顯示對話框,提示用戶設定旋轉角度
	if (dlgPara.DoModal() != IDOK)
	{
		// 返回
		return;
	}
	
	// 獲取用戶設定的平移量
	iRotateAngle = dlgPara.m_iRotateAngle;
	
	// 刪除對話框
	delete dlgPara;	
	
	
	// 創建新DIB
	HDIB hNewDIB = NULL;
	
	// 更改光標形狀
	BeginWaitCursor();
	
	// 調用RotateDIB()函數旋轉DIB
	hNewDIB = (HDIB) RotateDIB(lpDIB, iRotateAngle);
	
	// 判斷旋轉是否成功
	if (hNewDIB != NULL)
	{
		
		// 替換DIB,同時釋放舊DIB對象
		pDoc->ReplaceHDIB(hNewDIB);

		// 更新DIB大小和調色板
		pDoc->InitDIBData();
		
		// 設置臟標記
		pDoc->SetModifiedFlag(TRUE);
		
		// 重新設置滾動視圖大小
		SetScrollSizes(MM_TEXT, pDoc->GetDocSize());
		
		// 更新視圖
		pDoc->UpdateAllViews(NULL);
	}
	else
	{
		// 提示用戶
		MessageBox("分配內存失敗!", "系統提示" , MB_ICONINFORMATION | MB_OK);
	}
	
	// 解除鎖定
	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());

	// 恢復光標
	EndWaitCursor();
}

//////////////////////////////////////////////////////////////////////////////////////
//  圖像增強
//
void CCh1_1View::OnEnhaSmooth() 
{
	// 圖像平滑
	
	// 獲取文檔
	CCh1_1Doc* pDoc = GetDocument();
	
	// 指向DIB的指針
	LPSTR	lpDIB;
	
	// 指向DIB象素指針
	LPSTR   lpDIBBits;
	
	// 模板高度
	int		iTempH;
	
	// 模板寬度
	int		iTempW;
	
	// 模板系數
	FLOAT	fTempC;
	
	// 模板中心元素X坐標
	int		iTempMX;
	
	// 模板中心元素Y坐標
	int		iTempMY;
	
	// 模板元素數組
	FLOAT	aValue[25];
	
	// 鎖定DIB
	lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) pDoc->GetHDIB());

	// 找到DIB圖像象素起始位置
	lpDIBBits = ::FindDIBBits(lpDIB);
	
	// 判斷是否是8-bpp位圖(這里為了方便,只處理8-bpp位圖的平滑,其它的可以類推)
	if (::DIBNumColors(lpDIB) != 256)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的平滑!", "系統提示" , 
			MB_ICONINFORMATION | MB_OK);
		
		// 解除鎖定
		::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());
		
		// 返回
		return;
	}
	
	// 創建對話框
	CDlgSmooth dlgPara;
	
	// 給模板數組賦初值(為平均模板)
	aValue[0] = 1.0;
	aValue[1] = 1.0;
	aValue[2] = 1.0;
	aValue[3] = 0.0;
	aValue[4] = 0.0;
	aValue[5] = 1.0;
	aValue[6] = 1.0;
	aValue[7] = 1.0;
	aValue[8] = 0.0;
	aValue[9] = 0.0;
	aValue[10] = 1.0;
	aValue[11] = 1.0;
	aValue[12] = 1.0;
	aValue[13] = 0.0;
	aValue[14] = 0.0;
	aValue[15] = 0.0;
	aValue[16] = 0.0;
	aValue[17] = 0.0;
	aValue[18] = 0.0;
	aValue[19] = 0.0;
	aValue[20] = 0.0;
	aValue[21] = 0.0;
	aValue[22] = 0.0;
	aValue[23] = 0.0;
	aValue[24] = 0.0;
	
	// 初始化對話框變量值
	dlgPara.m_intType = 0;
	dlgPara.m_iTempH  = 3;
	dlgPara.m_iTempW  = 3;
	dlgPara.m_iTempMX = 1;
	dlgPara.m_iTempMY = 1;
	dlgPara.m_fTempC  = (FLOAT) (1.0 / 9.0);
	dlgPara.m_fpArray = aValue;
	
	// 顯示對話框,提示用戶設定平移量
	if (dlgPara.DoModal() != IDOK)
	{
		// 返回
		return;
	}
	
	// 獲取用戶設定的平移量
	iTempH  = dlgPara.m_iTempH;
	iTempW  = dlgPara.m_iTempW;
	iTempMX = dlgPara.m_iTempMX;
	iTempMY = dlgPara.m_iTempMY;
	fTempC  = dlgPara.m_fTempC;
	
	// 刪除對話框
	delete dlgPara;	
	
	// 更改光標形狀
	BeginWaitCursor();
	
	// 調用Template()函數平滑DIB
	if (::Template(lpDIBBits, ::DIBWidth(lpDIB), ::DIBHeight(lpDIB), 
		  iTempH, iTempW, iTempMX, iTempMY, aValue, fTempC))
	{
		
		// 設置臟標記
		pDoc->SetModifiedFlag(TRUE);

		// 更新視圖
		pDoc->UpdateAllViews(NULL);
	}
	else
	{
		// 提示用戶
		MessageBox("分配內存失敗!", "系統提示" , MB_ICONINFORMATION | MB_OK);
	}
	
	// 解除鎖定
	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());

	// 恢復光標
	EndWaitCursor();
	
}

void CCh1_1View::OnENHAMidianF() 
{
	// 中值濾波
	
	// 獲取文檔
	CCh1_1Doc* pDoc = GetDocument();
	
	// 指向DIB的指針
	LPSTR	lpDIB;
	
	// 指向DIB象素指針
	LPSTR   lpDIBBits;
	
	// 濾波器的高度
	int iFilterH;
	
	// 濾波器的寬度
	int iFilterW;
	
	// 中心元素的X坐標
	int iFilterMX;
	
	// 中心元素的Y坐標
	int iFilterMY;
	
	// 鎖定DIB
	lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) pDoc->GetHDIB());

	// 找到DIB圖像象素起始位置
	lpDIBBits = ::FindDIBBits(lpDIB);
	
	// 判斷是否是8-bpp位圖(這里為了方便,只處理8-bpp位圖的中值濾波,其它的可以類推)
	if (::DIBNumColors(lpDIB) != 256)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的中值濾波!", "系統提示" ,
			MB_ICONINFORMATION | MB_OK);
		
		// 解除鎖定
		::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());
		
		// 返回
		return;
	}
	
	// 創建對話框
	CDlgMidFilter dlgPara;
	
	// 初始化變量值
	dlgPara.m_iFilterType = 0;
	dlgPara.m_iFilterH = 3;
	dlgPara.m_iFilterW = 1;
	dlgPara.m_iFilterMX = 0;
	dlgPara.m_iFilterMY = 1;
	
	// 顯示對話框,提示用戶設定平移量
	if (dlgPara.DoModal() != IDOK)
	{
		// 返回
		return;
	}
	
	// 獲取用戶的設定
	iFilterH = dlgPara.m_iFilterH;
	iFilterW = dlgPara.m_iFilterW;
	iFilterMX = dlgPara.m_iFilterMX;
	iFilterMY = dlgPara.m_iFilterMY;
	
	// 刪除對話框
	delete dlgPara;	
	
	// 更改光標形狀
	BeginWaitCursor();
	
	// 調用MedianFilter()函數中值濾波
	if (::MedianFilter(lpDIBBits, ::DIBWidth(lpDIB), ::DIBHeight(lpDIB), 
		  iFilterH, iFilterW, iFilterMX, iFilterMY))
	{
		
		// 設置臟標記
		pDoc->SetModifiedFlag(TRUE);

		// 更新視圖
		pDoc->UpdateAllViews(NULL);
	}
	else
	{
		// 提示用戶
		MessageBox("分配內存失敗!", "系統提示" , MB_ICONINFORMATION | MB_OK);
	}
	
	// 解除鎖定
	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());

	// 恢復光標
	EndWaitCursor();
	
}

void CCh1_1View::OnEnhaGradsharp() 
{
	// 梯度銳化
	
	// 獲取文檔
	CCh1_1Doc* pDoc = GetDocument();
	
	// 指向DIB的指針
	LPSTR lpDIB;
	
	// 指向DIB象素指針
	LPSTR    lpDIBBits;
	
	// 鎖定DIB
	lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) pDoc->GetHDIB());

	// 找到DIB圖像象素起始位置
	lpDIBBits = ::FindDIBBits(lpDIB);	
	
	// 判斷是否是8-bpp位圖(這里為了方便,只處理8-bpp位圖的梯度銳化,其它的可以類推)
	if (::DIBNumColors(lpDIB) != 256)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的梯度銳化!", "系統提示" , 
			MB_ICONINFORMATION | MB_OK);
		
		// 解除鎖定
		::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());
		
		// 返回
		return;
	}
	
	// 閾值
	BYTE	bThre;
	
	// 創建對話框
	CDlgSharpThre dlgPara;
	
	// 初始化變量值
	dlgPara.m_bThre = 10;
	
	// 提示用戶輸入閾值
	if (dlgPara.DoModal() != IDOK)
	{
		// 返回
		return;
	}
	
	// 獲取用戶的設定
	bThre = dlgPara.m_bThre;
	
	// 刪除對話框
	delete dlgPara;	
	
	// 更改光標形狀
	BeginWaitCursor();
	
	// 調用GradSharp()函數進行梯度板銳化
	if (::GradSharp(lpDIBBits, ::DIBWidth(lpDIB), ::DIBHeight(lpDIB), bThre))
	{
		
		// 設置臟標記
		pDoc->SetModifiedFlag(TRUE);

		// 更新視圖
		pDoc->UpdateAllViews(NULL);
	}
	else
	{
		// 提示用戶
		MessageBox("分配內存失敗!", "系統提示" , MB_ICONINFORMATION | MB_OK);
	}
	
	// 解除鎖定
	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());

	// 恢復光標
	EndWaitCursor();
	
}

void CCh1_1View::OnEnhaSharp() 
{
	// 圖像銳化
	
	// 獲取文檔
	CCh1_1Doc* pDoc = GetDocument();
	
	// 指向DIB的指針
	LPSTR lpDIB;
	
	// 指向DIB象素指針
	LPSTR    lpDIBBits;
	
	// 模板高度
	int		iTempH;
	
	// 模板寬度
	int		iTempW;
	
	// 模板系數
	FLOAT	fTempC;
	
	// 模板中心元素X坐標
	int		iTempMX;
	
	// 模板中心元素Y坐標
	int		iTempMY;
	
	// 模板元素數組
	FLOAT	aValue[9];
	
	// 鎖定DIB
	lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) pDoc->GetHDIB());

	// 找到DIB圖像象素起始位置
	lpDIBBits = ::FindDIBBits(lpDIB);	
	
	// 判斷是否是8-bpp位圖(這里為了方便,只處理8-bpp位圖的銳化,其它的可以類推)
	if (::DIBNumColors(lpDIB) != 256)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的銳化!", "系統提示" , 
			MB_ICONINFORMATION | MB_OK);
		
		// 解除鎖定
		::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());
		
		// 返回
		return;
	}
	
	// 更改光標形狀
	BeginWaitCursor();
	
	// 設置拉普拉斯模板參數
	iTempW = 3;
	iTempH = 3;
	fTempC = 1.0;
	iTempMX = 1;
	iTempMY = 1;
	aValue[0] = -1.0;
	aValue[1] = -1.0;
	aValue[2] = -1.0;
	aValue[3] = -1.0;
	aValue[4] =  9.0;
	aValue[5] = -1.0;
	aValue[6] = -1.0;
	aValue[7] = -1.0;
	aValue[8] = -1.0;
	
	// 調用Template()函數用拉普拉斯模板銳化DIB

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www亚洲一区| 在线播放欧美女士性生活| 在线日韩av片| 26uuu国产一区二区三区| 一区二区三区四区在线| 久久精品国产精品亚洲精品| 色婷婷久久久久swag精品| 精品粉嫩超白一线天av| 性做久久久久久| 99re在线精品| 国产日产精品一区| 免费观看久久久4p| 欧美日韩精品综合在线| 亚洲蜜桃精久久久久久久| 国产成人午夜99999| 日韩精品一区二区三区中文精品| 亚洲午夜久久久久| 成人欧美一区二区三区1314| 久久er99精品| 日韩无一区二区| 视频一区免费在线观看| 91色乱码一区二区三区| 国产一区二区调教| 精品剧情在线观看| 丁香婷婷深情五月亚洲| 欧美日韩一区二区三区免费看| 中文字幕中文字幕一区| 国产99久久久久久免费看农村| 91精品国产综合久久小美女| 夜夜爽夜夜爽精品视频| 91浏览器入口在线观看| 亚洲女同一区二区| 色综合久久久久久久久| 亚洲美女在线一区| 日本久久一区二区三区| 亚洲一区二区五区| 欧美日韩在线直播| 日韩福利电影在线观看| 91精品国产综合久久精品| 日韩综合一区二区| 欧美一级一级性生活免费录像| 天天色综合成人网| 激情综合网av| 久久久精品国产免大香伊| 国产福利91精品| 中文字幕一区二区三区不卡在线| 91丨九色丨尤物| 亚洲午夜影视影院在线观看| 欧美精品日日鲁夜夜添| 色婷婷激情久久| 精品国产精品一区二区夜夜嗨| 激情综合色播五月| 国产精品全国免费观看高清| 97国产精品videossex| 亚洲电影一区二区| 日韩午夜精品电影| fc2成人免费人成在线观看播放| 亚洲日本免费电影| 3atv在线一区二区三区| 国产精品综合av一区二区国产馆| 亚洲欧洲色图综合| 欧美高清精品3d| 国产suv一区二区三区88区| 亚洲欧美色一区| 日韩欧美国产麻豆| 成人av免费网站| 视频一区欧美精品| 亚洲欧美综合在线精品| 欧美一级生活片| 久久网站最新地址| 在线视频一区二区免费| 久久99蜜桃精品| 9191久久久久久久久久久| 免费在线看成人av| 一区精品在线播放| 欧美一区二区视频免费观看| 91免费看视频| 三级欧美在线一区| 国产精品久久久久桃色tv| 69久久99精品久久久久婷婷| av午夜精品一区二区三区| 蜜臀久久99精品久久久久宅男| 国产精品久久精品日日| 日韩免费看的电影| 欧美视频在线不卡| 99这里只有久久精品视频| 久久99国产精品久久| 亚洲国产精品久久一线不卡| 国产精品私人自拍| 精品久久一区二区三区| 欧美日韩久久一区二区| 一本到不卡精品视频在线观看| 韩国av一区二区三区在线观看| 亚洲国产cao| 亚洲精品福利视频网站| 欧美国产精品v| 精品一区二区三区免费播放| 午夜激情一区二区三区| 亚洲精品成人悠悠色影视| 久久久久久久久伊人| 欧美日韩不卡一区| 日韩欧美一区二区在线视频| 国产激情视频一区二区三区欧美| 奇米影视在线99精品| 香蕉av福利精品导航| 亚洲视频一区在线观看| 欧美国产在线观看| 精品日韩av一区二区| 日韩欧美中文字幕精品| 欧美一区二区三区电影| 欧美日韩电影在线播放| 欧美日韩精品欧美日韩精品一| 在线观看精品一区| 欧美视频一区二区三区四区| 欧美在线观看一区| 欧美日韩国产另类不卡| 欧美日韩精品一区二区| 美女mm1313爽爽久久久蜜臀| 久久国产精品第一页| 91精品国产综合久久精品性色| 免费观看在线综合| 黑人巨大精品欧美黑白配亚洲| 久久精品国产久精国产| 国产一区福利在线| 国产精品123区| 成人毛片老司机大片| 欧美日韩精品免费观看视频| 亚洲精品欧美二区三区中文字幕| 亚洲久草在线视频| 夜夜亚洲天天久久| 奇米影视一区二区三区小说| 国产在线精品一区二区三区不卡| 狠狠色丁香婷婷综合| 高清在线成人网| 色素色在线综合| 欧美另类变人与禽xxxxx| 欧美一级黄色片| 久久久99精品免费观看| 专区另类欧美日韩| 亚洲电影一级黄| 精品一区二区三区免费观看| 99久久婷婷国产综合精品| 欧美在线色视频| 精品99一区二区| 亚洲欧洲成人自拍| 美女国产一区二区三区| 国产成人啪免费观看软件| 色综合 综合色| 337p日本欧洲亚洲大胆精品| 国产精品动漫网站| 青草av.久久免费一区| 国产成人免费xxxxxxxx| 欧美性极品少妇| 国产视频一区二区在线观看| 一区二区三区鲁丝不卡| 国内成+人亚洲+欧美+综合在线| 99久久久精品| 精品国产免费人成在线观看| 亚洲欧美激情在线| 韩国女主播成人在线观看| 一本久久a久久精品亚洲| 日韩欧美中文字幕精品| 夜夜嗨av一区二区三区四季av| 精品午夜一区二区三区在线观看 | 国产在线观看一区二区| 成人性色生活片免费看爆迷你毛片| 欧美三级电影精品| 亚洲国产精品成人综合| 欧美a一区二区| 色拍拍在线精品视频8848| xf在线a精品一区二区视频网站| 亚洲成人精品在线观看| 99re成人精品视频| 国产午夜精品理论片a级大结局| 婷婷国产在线综合| 色综合中文字幕国产| 欧美电影免费观看高清完整版在线 | 欧美日韩国产小视频在线观看| 欧美大肚乱孕交hd孕妇| 亚洲自拍与偷拍| 丁香激情综合国产| 久久亚洲欧美国产精品乐播 | 亚洲欧美另类久久久精品2019| 国产精品2024| 欧美电视剧在线看免费| 视频在线在亚洲| 欧美日韩国产电影| 亚洲最大成人网4388xx| 色综合网站在线| 国产精品不卡在线| 成人黄色免费短视频| 国产欧美精品一区二区色综合 | 在线观看欧美日本| 亚洲欧美激情在线| 在线免费观看一区| 亚洲色图在线看| 一本大道av一区二区在线播放 | 久久狠狠亚洲综合| 日韩美女主播在线视频一区二区三区| 亚洲一区二区三区在线|