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

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

?? ch1_1view.cpp

?? 《Visual C++數字圖像處理》配套源代碼
?? 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
	if (::Template(lpDIBBits, ::DIBWidth(lpDIB), ::DIBHeight(lpDIB), 
		  iTempH, iTempW, iTempMX, iTempMY, aValue, fTempC))
	{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡视频一二三| 不卡av在线免费观看| 亚洲丝袜另类动漫二区| 久久精品人人做人人爽97| 欧美一级精品大片| 欧美一区二区三区视频在线观看| 精品视频在线免费观看| 欧美日韩一区中文字幕| 欧美日韩国产综合一区二区 | 日韩丝袜情趣美女图片| 在线播放/欧美激情| 欧美巨大另类极品videosbest | 欧美国产乱子伦| 国产精品久久久久桃色tv| 亚洲欧美激情小说另类| 亚洲国产美女搞黄色| 日韩影院免费视频| 久久99久久精品欧美| 国产真实乱对白精彩久久| 国产白丝网站精品污在线入口| 国产激情91久久精品导航 | 91麻豆精品国产自产在线| 欧美日韩黄色一区二区| 久久午夜羞羞影院免费观看| 国产亚洲福利社区一区| 17c精品麻豆一区二区免费| 一区二区免费在线| 九九**精品视频免费播放| 国产一区二区伦理| 色婷婷激情一区二区三区| 欧美一区二区三区四区在线观看 | 日本在线观看不卡视频| 国产综合色在线视频区| 91福利资源站| 久久蜜臀中文字幕| 亚洲国产毛片aaaaa无费看| 国产最新精品免费| 欧美三级日韩三级| 欧美国产精品劲爆| 日本aⅴ亚洲精品中文乱码| 风间由美一区二区av101| 欧美日韩美少妇| 国产午夜一区二区三区| 亚洲国产一区在线观看| 大陆成人av片| 欧美一级爆毛片| 亚洲老司机在线| 国产麻豆视频一区| 欧美日韩第一区日日骚| 中文字幕日韩av资源站| 蜜桃视频一区二区三区| 91亚洲永久精品| 久久久久久久国产精品影院| 亚洲高清一区二区三区| 国产成人精品一区二区三区网站观看| 欧美日韩国产一区二区三区地区| 中文欧美字幕免费| 久久电影网电视剧免费观看| 欧美色倩网站大全免费| 中文字幕av一区二区三区高| 奇米影视一区二区三区小说| 一本高清dvd不卡在线观看| 日本一区二区动态图| 久久精品999| 6080国产精品一区二区| 亚洲综合清纯丝袜自拍| a亚洲天堂av| 国产蜜臀av在线一区二区三区| 精品在线视频一区| 日韩一级成人av| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美性欧美巨大黑白大战| 国产精品久久网站| 高清久久久久久| 国产精品三级av| 成人免费福利片| 国产精品欧美极品| 99久久久免费精品国产一区二区| 国产欧美日本一区二区三区| 国产综合久久久久久鬼色| 久久伊99综合婷婷久久伊| 激情久久久久久久久久久久久久久久| 日韩欧美中文一区二区| 美女一区二区在线观看| 精品国产1区2区3区| 久久国产婷婷国产香蕉| 欧美sm极限捆绑bd| 国产传媒一区在线| 欧美激情中文字幕一区二区| 成人av网站在线观看| 日韩一区在线播放| 色综合中文字幕| 偷拍一区二区三区| 日韩精品一区二区三区三区免费| 9人人澡人人爽人人精品| 国产精品色一区二区三区| 91最新地址在线播放| 亚洲va国产va欧美va观看| 91精品国产综合久久香蕉的特点| 久久激五月天综合精品| 欧美国产国产综合| 欧美色爱综合网| 激情五月婷婷综合| 中文字幕一区日韩精品欧美| 欧美视频一区在线观看| 精品一区二区三区日韩| 国产精品色眯眯| 欧美日韩欧美一区二区| 麻豆国产精品官网| 国产精品国产馆在线真实露脸| 91黄色在线观看| 久久精品久久综合| 亚洲欧洲成人自拍| 51精品视频一区二区三区| 国产成人av一区二区三区在线| 亚洲人成人一区二区在线观看| 欧美日本一区二区| 成人黄色av网站在线| 日本三级亚洲精品| 亚洲桃色在线一区| 日韩欧美亚洲另类制服综合在线| 成人福利在线看| 麻豆视频观看网址久久| 亚洲日本va午夜在线影院| 日韩欧美中文字幕精品| 在线免费视频一区二区| 丁香啪啪综合成人亚洲小说| 香蕉成人伊视频在线观看| 中文字幕国产一区二区| 91精品国产综合久久精品| 91日韩精品一区| 国产精品亚洲视频| 麻豆精品在线播放| 亚洲成人资源在线| 国产精品色眯眯| 国产精品毛片a∨一区二区三区| 欧美不卡123| 日韩欧美一区中文| 欧美日韩高清一区二区不卡| 色爱区综合激月婷婷| bt7086福利一区国产| 国产成人免费在线观看| 美女性感视频久久| 日韩精品免费专区| 亚洲午夜免费视频| 亚洲美女视频一区| 中文字幕一区二区三区精华液 | 欧美色图免费看| 91高清视频免费看| 一本大道久久a久久精品综合| 国产精品亚洲综合一区在线观看| 六月丁香婷婷久久| 麻豆精品久久久| 日本欧美大码aⅴ在线播放| 亚洲三级免费电影| 久久久99久久| 中文字幕国产精品一区二区| 精品黑人一区二区三区久久| 欧美日韩精品免费观看视频| 另类的小说在线视频另类成人小视频在线| 亚洲午夜一二三区视频| 最新热久久免费视频| 欧美激情在线看| 国产亚洲一区二区三区| 久久久欧美精品sm网站| 日韩欧美精品在线| 91麻豆精品91久久久久久清纯| 日本乱码高清不卡字幕| 99久久久精品| 91小视频免费看| 91网上在线视频| 欧日韩精品视频| 欧洲日韩一区二区三区| 色www精品视频在线观看| 韩国v欧美v亚洲v日本v| 丰满白嫩尤物一区二区| 国产乱码精品一区二区三区五月婷| 奇米精品一区二区三区在线观看 | 色狠狠一区二区| 成人小视频免费观看| 欧美午夜不卡在线观看免费| 色欧美乱欧美15图片| 在线一区二区视频| 精品欧美一区二区三区精品久久| 欧美一区二区免费| 精品国产网站在线观看| 日本一二三不卡| 亚洲精品水蜜桃| 午夜精品久久久久久久久久久| 五月综合激情日本mⅴ| 亚洲综合激情网| 国产在线精品视频| 粗大黑人巨茎大战欧美成人| 成人午夜激情片| 91精品国产麻豆国产自产在线 | 亚洲妇熟xx妇色黄| 蜜臀av性久久久久蜜臀aⅴ流畅| eeuss鲁片一区二区三区在线观看| 色综合天天综合网天天狠天天| 欧美人牲a欧美精品|