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

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

?? ch1_1view.cpp

?? 影像處理程序 基本的影像處理算法
?? 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一区二区三区免费野_久草精品视频
亚洲欧美激情插| 视频一区二区中文字幕| 777奇米成人网| www.日韩在线| 国产精品一区二区三区四区 | 久久久国产一区二区三区四区小说 | 色8久久精品久久久久久蜜| 久久精品久久久精品美女| 亚洲婷婷在线视频| 国产亚洲精品aa| 日韩免费高清电影| 欧美剧情片在线观看| 91免费视频大全| 粉嫩绯色av一区二区在线观看 | 91浏览器入口在线观看| 国产在线乱码一区二区三区| 亚洲国产视频网站| 日韩毛片一二三区| 国产精品亲子伦对白| 精品粉嫩aⅴ一区二区三区四区| 91国模大尺度私拍在线视频| 国产成人超碰人人澡人人澡| 久久国产精品一区二区| 石原莉奈在线亚洲三区| 亚洲一区二区三区四区五区黄| 国产精品视频线看| 国产午夜一区二区三区| 精品日韩欧美在线| 日韩欧美另类在线| 日韩一卡二卡三卡| 日韩一区和二区| 6080国产精品一区二区| 欧美午夜不卡视频| 欧美喷潮久久久xxxxx| 在线观看av一区二区| 91国偷自产一区二区使用方法| 99久久综合狠狠综合久久| 不卡在线视频中文字幕| av午夜一区麻豆| 91视频精品在这里| 欧美在线影院一区二区| 在线欧美日韩精品| 欧美日韩二区三区| 欧美一级视频精品观看| 日韩免费观看高清完整版在线观看| 欧美三电影在线| 欧美一区二区精美| 精品美女一区二区| 国产清纯在线一区二区www| 中文无字幕一区二区三区| 国产农村妇女毛片精品久久麻豆 | 日本精品一区二区三区高清| 欧洲另类一二三四区| 欧美午夜精品久久久久久超碰| 91成人在线精品| 欧美乱熟臀69xxxxxx| 欧美成人三级在线| 国产亚洲一本大道中文在线| 欧美—级在线免费片| 玉米视频成人免费看| 日韩福利视频网| 国产一区二区美女诱惑| 成人黄色片在线观看| 日本精品免费观看高清观看| 欧美丰满少妇xxxxx高潮对白| 精品国产伦一区二区三区免费| 亚洲国产精品ⅴa在线观看| 最新国产の精品合集bt伙计| 亚洲影院理伦片| 精品亚洲国内自在自线福利| 波波电影院一区二区三区| 欧日韩精品视频| 久久亚洲精精品中文字幕早川悠里 | 亚洲三级理论片| 奇米在线7777在线精品| 成人午夜免费av| 717成人午夜免费福利电影| 久久新电视剧免费观看| 亚洲免费av观看| 麻豆精品国产传媒mv男同| 成人app在线| 91精品久久久久久久99蜜桃| 国产精品天干天干在观线| 午夜视频在线观看一区二区三区| 韩日av一区二区| 欧美性猛交xxxx黑人交| 国产亚洲欧美在线| 日韩专区一卡二卡| 成人高清视频在线观看| 日韩欧美国产综合一区| 亚洲免费大片在线观看| 国产精品资源网站| 精品视频在线看| 国产精品女上位| 精品一区二区三区免费观看| 日本高清不卡一区| 中文字幕欧美日本乱码一线二线 | 色综合中文字幕国产| 91麻豆精品国产91久久久久久 | 国产精品久久久久9999吃药| 日本午夜一区二区| 91官网在线观看| 国产精品久久久久毛片软件| 九九久久精品视频| 欧美疯狂做受xxxx富婆| 亚洲黄色小视频| 成人黄色一级视频| 久久久久久久综合色一本| 日韩av不卡在线观看| 欧美影院精品一区| 综合中文字幕亚洲| 成人在线综合网站| 久久久久久9999| 精品一区二区三区在线观看| 91精品国产综合久久香蕉的特点| 亚洲人吸女人奶水| 成人精品视频一区二区三区尤物| 日韩免费电影一区| 免费国产亚洲视频| 7777精品久久久大香线蕉| 亚洲国产视频在线| 欧美图片一区二区三区| 亚洲视频一区二区在线| 99精品国产热久久91蜜凸| 国产精品理论片| 国产成人免费高清| 欧美国产日韩a欧美在线观看| 国产一区二区三区av电影| 欧美电影精品一区二区| 久久99精品久久久久久久久久久久 | 国产精品免费久久| 成人免费黄色在线| 中文字幕一区三区| 色综合久久久久久久久| 亚洲另类春色国产| 欧美日韩综合色| 三级在线观看一区二区| 3d动漫精品啪啪一区二区竹菊| 亚洲电影欧美电影有声小说| 欧美日韩一区二区三区在线 | 久久www免费人成看片高清| 欧美一区二区在线免费观看| 日韩经典一区二区| 日韩免费看的电影| 国产精品伊人色| 国产精品理伦片| 色综合久久久网| 午夜欧美电影在线观看| 日韩午夜激情免费电影| 国内精品国产三级国产a久久| 久久久久亚洲综合| 91日韩在线专区| 亚洲成人免费影院| 精品国免费一区二区三区| 国产一二精品视频| 亚洲视频一区二区在线观看| 欧美亚洲尤物久久| 久久精品噜噜噜成人88aⅴ| 2023国产精品视频| eeuss国产一区二区三区| 亚洲精品v日韩精品| 欧美精品18+| 国产成人高清视频| 亚洲一级在线观看| 精品久久人人做人人爱| 99国产精品视频免费观看| 亚洲超碰精品一区二区| 久久综合色综合88| 91农村精品一区二区在线| 丝袜国产日韩另类美女| 久久久久久夜精品精品免费| 99久久99久久精品免费观看 | 亚洲电影一区二区三区| 日韩欧美不卡一区| 99久久精品久久久久久清纯| 日韩福利电影在线观看| 亚洲国产成人私人影院tom| 欧美午夜不卡在线观看免费| 激情综合网天天干| 亚洲欧美日本在线| 欧美不卡一二三| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 国产精品久久影院| 91精品国产色综合久久| 成人免费高清视频| 久久激情综合网| 亚洲免费观看高清完整版在线观看熊 | 日韩国产欧美在线观看| 国产精品免费aⅴ片在线观看| 欧美美女bb生活片| av在线播放一区二区三区| 久久99国产精品尤物| 亚洲午夜av在线| 国产精品污污网站在线观看| 91精品久久久久久蜜臀| 色婷婷综合久久久| 国产一区二区不卡老阿姨| 亚洲国产一区二区三区青草影视| 久久一区二区视频| 成人黄色av电影|