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

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

?? ch1_1view.cpp

?? 影像處理程序 基本的影像處理算法
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
	FLOAT fB;
	
	// 鎖定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;
	}
	
	// 初始化變量值
	dlgPara.m_fA = 2.0;
	dlgPara.m_fB = -128.0;
	
	// 顯示對話框,提示用戶設定平移量
	if (dlgPara.DoModal() != IDOK)
	{
		// 返回
		return;
	}
	
	// 獲取用戶設定的平移量
	fA = dlgPara.m_fA;
	fB = dlgPara.m_fB;
	
	// 刪除對話框
	delete dlgPara;	
	
	// 更改光標形狀
	BeginWaitCursor();
	
	// 調用LinerTrans()函數進行線性變換
	LinerTrans(lpDIBBits, ::DIBWidth(lpDIB), ::DIBHeight(lpDIB), fA, fB);
	
	// 設置臟標記
	pDoc->SetModifiedFlag(TRUE);
	
	// 更新視圖
	pDoc->UpdateAllViews(NULL);
	
	// 解除鎖定
	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());

	// 恢復光標
	EndWaitCursor();
	
}

void CCh1_1View::OnPointThre() 
{
	// 閾值變換
	
	// 獲取文檔
	CCh1_1Doc* pDoc = GetDocument();
	
	// 指向DIB的指針
	LPSTR	lpDIB;
	
	// 指向DIB象素指針
	LPSTR   lpDIBBits;
	
	// 參數對話框
	CDlgPointThre  dlgPara;
	
	// 閾值
	BYTE	bThre;
	
	// 鎖定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;
	}
	
	// 初始化變量值
	dlgPara.m_bThre = 128;
	
	// 顯示對話框,提示用戶設定閾值
	if (dlgPara.DoModal() != IDOK)
	{
		// 返回
		return;
	}
	
	// 獲取用戶設定的閾值
	bThre = dlgPara.m_bThre;
	
	// 刪除對話框
	delete dlgPara;	
	
	// 更改光標形狀
	BeginWaitCursor();
	
	// 調用ThresholdTrans()函數進行閾值變換
	ThresholdTrans(lpDIBBits, ::DIBWidth(lpDIB), ::DIBHeight(lpDIB), bThre);
	
	// 設置臟標記
	pDoc->SetModifiedFlag(TRUE);
	
	// 更新視圖
	pDoc->UpdateAllViews(NULL);
	
	// 解除鎖定
	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());
	
	// 恢復光標
	EndWaitCursor();
}

void CCh1_1View::OnPointWind() 
{
	// 窗口變換
	
	// 獲取文檔
	CCh1_1Doc* pDoc = GetDocument();
	
	// 指向DIB的指針
	LPSTR lpDIB;
	
	// 指向DIB象素指針
	LPSTR    lpDIBBits;
	
	// 創建對話框
	CDlgPointWin  dlgPara;
	
	// 窗口下限
	BYTE	bLow;
	
	// 窗口上限
	BYTE	bUp;
	
	// 鎖定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;
	}
	
	// 初始化變量值
	dlgPara.m_bLow = 0;
	dlgPara.m_bUp = 255;
	
	// 顯示對話框,提示用戶設定窗口上下限
	if (dlgPara.DoModal() != IDOK)
	{
		// 返回
		return;
	}
	
	// 獲取用戶設定的窗口上下限
	bLow = dlgPara.m_bLow;
	bUp = dlgPara.m_bUp;
	
	// 刪除對話框
	delete dlgPara;	
	
	// 更改光標形狀
	BeginWaitCursor();
	
	// 調用WindowTrans()函數進行窗口變換
	WindowTrans(lpDIBBits, ::DIBWidth(lpDIB), ::DIBHeight(lpDIB), bLow, bUp);
	
	// 設置臟標記
	pDoc->SetModifiedFlag(TRUE);
	
	// 更新視圖
	pDoc->UpdateAllViews(NULL);
	
	// 解除鎖定
	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());
	
	// 恢復光標
	EndWaitCursor();
}

void CCh1_1View::OnPointStre() 
{
	// 灰度拉伸
	
	// 獲取文檔
	CCh1_1Doc* pDoc = GetDocument();
	
	// 指向DIB的指針
	LPSTR	lpDIB;
	
	// 指向DIB象素指針
	LPSTR   lpDIBBits;
	
	// 創建對話框
	CDlgPointStre dlgPara;
	
	// 點1坐標
	BYTE	bX1;
	BYTE	bY1;
	
	// 點2坐標
	BYTE	bX2;
	BYTE	bY2;
	
	// 鎖定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;
	}
	
	// 初始化變量值
	dlgPara.m_bX1 = 50;
	dlgPara.m_bY1 = 30;
	dlgPara.m_bX2 = 200;
	dlgPara.m_bY2 = 220;
	
	// 顯示對話框,提示用戶設定拉伸位置
	if (dlgPara.DoModal() != IDOK)
	{
		// 返回
		return;
	}
	
	// 獲取用戶的設定
	bX1 = dlgPara.m_bX1;
	bY1 = dlgPara.m_bY1;
	bX2 = dlgPara.m_bX2;
	bY2 = dlgPara.m_bY2;
	
	// 刪除對話框
	delete dlgPara;	
	
	// 更改光標形狀
	BeginWaitCursor();
	
	// 調用GrayStretch()函數進行灰度拉伸
	GrayStretch(lpDIBBits, ::DIBWidth(lpDIB), ::DIBHeight(lpDIB), bX1, bY1, bX2, bY2);
	
	// 設置臟標記
	pDoc->SetModifiedFlag(TRUE);
	
	// 更新視圖
	pDoc->UpdateAllViews(NULL);
	
	// 解除鎖定
	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());

	// 恢復光標
	EndWaitCursor();
}

void CCh1_1View::OnPointEqua() 
{
	// 灰度均衡
	
	// 獲取文檔
	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;
	}
	
	// 更改光標形狀
	BeginWaitCursor();
	
	// 調用InteEqualize()函數進行直方圖均衡
	InteEqualize(lpDIBBits, ::DIBWidth(lpDIB), ::DIBHeight(lpDIB));
	
	// 設置臟標記
	pDoc->SetModifiedFlag(TRUE);
	
	// 更新視圖
	pDoc->UpdateAllViews(NULL);
	
	// 解除鎖定
	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());

	// 恢復光標
	EndWaitCursor();
	
}

//////////////////////////////////////////////////////////////////////////////////////
//  圖像幾何變換
//
void CCh1_1View::OnGeomTran() 
{
	// 平移位圖

	// 獲取文檔
	CCh1_1Doc* pDoc = GetDocument();
	
	// 指向DIB的指針
	LPSTR	lpDIB;

	// 指向DIB象素指針
	LPSTR   lpDIBBits;
	
	// 鎖定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;
	}
	
	LONG lXOffset;
	LONG lYOffset;
	
	// 創建對話框
	CDlgGeoTran dlgPara;
	
	// 初始化變量值
	dlgPara.m_XOffset = 100;
	dlgPara.m_YOffset = 100;
	
	// 顯示對話框,提示用戶設定平移量
	if (dlgPara.DoModal() != IDOK)
	{
		// 返回
		return;
	}
	
	// 獲取用戶設定的平移量
	lXOffset = dlgPara.m_XOffset;
	lYOffset = dlgPara.m_YOffset;
	
	// 刪除對話框
	delete dlgPara;	
	
	// 更改光標形狀
	BeginWaitCursor();

	// 找到DIB圖像象素起始位置
	lpDIBBits = ::FindDIBBits(lpDIB);
	
	// 調用TranslationDIB()函數平移DIB
	if (TranslationDIB1(lpDIBBits, ::DIBWidth(lpDIB), ::DIBHeight(lpDIB), lXOffset, lYOffset))
	{
		
		// 設置臟標記
		pDoc->SetModifiedFlag(TRUE);

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

	// 恢復光標
	EndWaitCursor();
}

void CCh1_1View::OnGeomMirv() 
{
	// 垂直鏡像
	

	// 獲取文檔
	CCh1_1Doc* pDoc = GetDocument();
	
	// 指向DIB的指針
	LPSTR lpDIB;

	// 指向DIB象素指針
	LPSTR    lpDIBBits;
	
	// 鎖定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;
	}
	
	
	// 更改光標形狀
	BeginWaitCursor();

	// 找到DIB圖像象素起始位置
	lpDIBBits = ::FindDIBBits(lpDIB);
	
	// 調用MirrorDIB()函數垂直鏡像DIB
	if (MirrorDIB(lpDIBBits, ::DIBWidth(lpDIB), ::DIBHeight(lpDIB), FALSE))
	{
		
		// 設置臟標記
		pDoc->SetModifiedFlag(TRUE);

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

	// 恢復光標
	EndWaitCursor();

}

void CCh1_1View::OnGeomMirh() 
{
	// 水平鏡像

	// 獲取文檔
	CCh1_1Doc* pDoc = GetDocument();
	
	// 指向DIB的指針
	LPSTR lpDIB;

	// 指向DIB象素指針
	LPSTR    lpDIBBits;
	
	// 鎖定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;
	}
	
	
	// 更改光標形狀
	BeginWaitCursor();

	// 找到DIB圖像象素起始位置
	lpDIBBits = ::FindDIBBits(lpDIB);
	
	// 調用MirrorDIB()函數水平鏡像DIB
	if (MirrorDIB(lpDIBBits, ::DIBWidth(lpDIB), ::DIBHeight(lpDIB), TRUE))
	{
		
		// 設置臟標記
		pDoc->SetModifiedFlag(TRUE);

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

	// 恢復光標
	EndWaitCursor();

	
}

void CCh1_1View::OnGeomTrpo() 
{
	// 圖像轉置

	// 獲取文檔
	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;
	}
	
	
	// 更改光標形狀
	BeginWaitCursor();
	
	// 調用TransposeDIB()函數轉置DIB
	if (TransposeDIB(lpDIB))
	{
		
		// 設置臟標記
		pDoc->SetModifiedFlag(TRUE);
		
		// 更新DIB大小和調色板
		pDoc->InitDIBData();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡一卡二卡三乱码免费网站| 一区二区三区久久| 欧美xxxx老人做受| 18欧美亚洲精品| 亚洲综合在线视频| 日本亚洲最大的色成网站www| 福利一区二区在线| 成人午夜av电影| 精品国产乱码久久久久久闺蜜| 久久精品人人做人人爽97| 欧美草草影院在线视频| 亚洲精品水蜜桃| 免费一区二区视频| 欧美日韩一区精品| 中文字幕乱码亚洲精品一区| 日本不卡一二三区黄网| 波多野结衣中文一区| 欧美精品一级二级三级| 亚洲乱码国产乱码精品精的特点| 看电视剧不卡顿的网站| 在线观看一区二区精品视频| 久久综合av免费| 一区二区成人在线| 色综合久久综合网| 国产日产欧美一区| 国产一区二区日韩精品| 欧美日韩国产影片| 亚洲国产美国国产综合一区二区| 成人免费黄色大片| 欧美精品三级日韩久久| 亚洲三级在线免费观看| 国产一区二区三区高清播放| 日韩三级电影网址| 亚洲成人久久影院| 在线不卡欧美精品一区二区三区| 1024成人网色www| 国产乱对白刺激视频不卡| 欧美三级午夜理伦三级中视频| 国产精品无码永久免费888| 免费在线观看视频一区| 精品国产一区二区三区久久久蜜月 | 一个色在线综合| 久久精品国产成人一区二区三区| 欧美高清一级片在线| 亚洲综合在线观看视频| 在线观看免费视频综合| 中文字幕日本不卡| 欧美亚洲图片小说| 亚洲小说欧美激情另类| av资源网一区| 性欧美疯狂xxxxbbbb| 在线免费观看一区| 日本不卡一区二区三区| 3atv一区二区三区| 国产自产高清不卡| 2021久久国产精品不只是精品| 日韩高清一级片| 欧美一区二区福利视频| 美女免费视频一区| 久久综合九色欧美综合狠狠 | 国内外精品视频| 久久奇米777| 欧美视频在线播放| 中文字幕av一区二区三区免费看| 国产成人在线网站| 欧美日韩在线精品一区二区三区激情 | 国产精品羞羞答答xxdd| 精品久久久久久久久久久院品网 | 激情五月激情综合网| 欧美videossexotv100| 成人午夜在线播放| 日韩理论电影院| 日韩欧美的一区二区| 精品一区二区三区免费观看| 欧美一区欧美二区| 成人av电影在线观看| 亚洲色图欧美在线| 精品国产123| 波多野结衣欧美| 伊人一区二区三区| 国产三级欧美三级| 久久综合一区二区| 91国产丝袜在线播放| 亚洲狠狠爱一区二区三区| 久久嫩草精品久久久久| 成人午夜免费电影| 一级精品视频在线观看宜春院| 精品国免费一区二区三区| 粉嫩绯色av一区二区在线观看| 日韩中文欧美在线| 国产欧美va欧美不卡在线| 欧美日韩aaa| 国产成人免费视频网站| 日本美女一区二区三区视频| 国产精品少妇自拍| 日韩免费观看高清完整版 | 在线一区二区三区做爰视频网站| 玖玖九九国产精品| 亚洲精品中文在线| 日韩一区二区高清| 欧美日韩国产乱码电影| 成人一级黄色片| 成人欧美一区二区三区1314| 精品一区二区三区免费播放| 成人黄色av电影| 国产精品日日摸夜夜摸av| 欧美一二三区精品| 99综合影院在线| 国产在线看一区| 婷婷亚洲久悠悠色悠在线播放| 欧美日韩国产另类一区| 精品视频在线看| av色综合久久天堂av综合| 成人精品视频一区二区三区尤物| 丝袜亚洲另类欧美| 无码av免费一区二区三区试看| 中文字幕一区二区日韩精品绯色| 国产日韩欧美亚洲| 欧美一区二区三区日韩视频| 欧美美女直播网站| 欧美性大战xxxxx久久久| 国产精品一区二区三区乱码| 精品无人区卡一卡二卡三乱码免费卡 | 99re热这里只有精品免费视频| 麻豆国产精品一区二区三区| 一区二区免费在线| 国产欧美一区二区精品久导航| 精品欧美一区二区久久| 日韩欧美在线123| 欧美精品v国产精品v日韩精品 | 91蝌蚪国产九色| 成人国产免费视频| 99久久久久久| 成人av午夜影院| av激情综合网| 欧美在线|欧美| 在线免费观看日本一区| 9191精品国产综合久久久久久 | 精品一区二区免费看| 日本欧美加勒比视频| 亚洲福利视频一区二区| 另类小说欧美激情| 看国产成人h片视频| 成人黄色片在线观看| 大美女一区二区三区| 欧美色成人综合| 欧美乱熟臀69xxxxxx| 久久亚洲私人国产精品va媚药| 久久综合九色综合欧美亚洲| 国产精品传媒视频| 亚洲无人区一区| 国产精品一区专区| 在线观看亚洲一区| 日韩欧美一卡二卡| 久久久五月婷婷| 亚洲mv在线观看| 久久精品72免费观看| caoporn国产精品| 欧洲亚洲国产日韩| 久久综合成人精品亚洲另类欧美| 欧美国产视频在线| 亚洲电影视频在线| 韩国av一区二区三区四区 | 亚洲免费av观看| 天堂午夜影视日韩欧美一区二区| 奇米精品一区二区三区四区| 麻豆中文一区二区| 成人91在线观看| 精品国产伦一区二区三区免费| 中文乱码免费一区二区| 日韩不卡一区二区| 成人蜜臀av电影| 久久综合久久鬼色中文字| 亚洲日本在线天堂| 国产乱国产乱300精品| 欧美系列一区二区| 国产精品毛片高清在线完整版| 亚洲与欧洲av电影| 国产精品一卡二| 91免费观看视频| 久久精品一区蜜桃臀影院| 亚洲国产精品精华液网站| 国产不卡视频一区| 欧美一二三区在线观看| 一区二区三区精品视频在线| 韩国欧美国产1区| 在线观看日韩av先锋影音电影院| 久久久一区二区三区| 天天色天天爱天天射综合| 91在线丨porny丨国产| 91精品国产欧美一区二区18| 亚洲丝袜精品丝袜在线| 国产成人av电影免费在线观看| 91精品在线免费| 亚洲精品日韩专区silk| 顶级嫩模精品视频在线看| 久久久一区二区三区捆绑**| 亚洲第一福利视频在线| 成人免费看视频| 久久久久久久久久久久久女国产乱|