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

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

?? ch1_1view.cpp

?? 《Visual C++數字圖像處理》配套源代碼
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
	
	// 鎖定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一区二区三区免费野_久草精品视频
色一区在线观看| 日韩伦理av电影| 亚洲女女做受ⅹxx高潮| 久久国产福利国产秒拍| 91搞黄在线观看| 国产欧美一区二区在线| 美美哒免费高清在线观看视频一区二区| 99精品黄色片免费大全| 久久综合九色综合97婷婷| 午夜精品一区二区三区电影天堂| 成人av在线电影| 26uuu成人网一区二区三区| 日韩av成人高清| 欧美日韩另类一区| 一二三四社区欧美黄| av一区二区三区黑人| 国产亚洲成av人在线观看导航 | 国产精品996| 日韩一区二区三区观看| 亚洲h动漫在线| 欧美日韩电影在线| 亚洲一区免费在线观看| 91福利在线免费观看| 亚洲欧美日韩电影| 在线影院国内精品| 一级做a爱片久久| 91久久人澡人人添人人爽欧美| 亚洲日韩欧美一区二区在线| 成人h动漫精品一区二| 亚洲国产经典视频| fc2成人免费人成在线观看播放| 久久精品人人做人人综合| 国产一区二区三区美女| 国产视频911| jlzzjlzz亚洲日本少妇| 亚洲另类在线一区| 精品污污网站免费看| 午夜激情一区二区| 欧美电影精品一区二区| 韩国精品主播一区二区在线观看| 精品国产sm最大网站免费看| 韩国女主播一区| 中文字幕免费不卡| 91免费看视频| 爽好多水快深点欧美视频| 欧美一卡二卡三卡| 国产精品一品视频| 综合久久久久综合| 欧美三级中文字| 激情综合色播五月| 亚洲欧洲av在线| 欧美日韩国产片| 国产麻豆精品theporn| 国产精品麻豆网站| 欧美区一区二区三区| 国产麻豆精品视频| 洋洋av久久久久久久一区| 日韩欧美国产小视频| 播五月开心婷婷综合| 香蕉av福利精品导航| 久久久精品日韩欧美| 色94色欧美sute亚洲线路二| 美国一区二区三区在线播放| 亚洲国产成人在线| 欧美久久久久免费| 成人午夜视频免费看| 午夜精品爽啪视频| 国产欧美中文在线| 91精品婷婷国产综合久久性色 | 国产麻豆视频一区二区| 亚洲欧洲综合另类在线| 欧美一级淫片007| 不卡的av网站| 久久精品国产精品青草| 一区二区三区精品视频在线| 欧美成人一区二区| 欧美三级中文字幕| www.亚洲激情.com| 国内精品第一页| 亚洲一区中文在线| 国产精品少妇自拍| 欧美xxxxxxxx| 欧美午夜精品免费| 成人av网在线| 国产白丝网站精品污在线入口| 日韩精品福利网| 一区二区三区在线免费视频| 国产亚洲欧美激情| 精品日本一线二线三线不卡| 91久久奴性调教| 91麻豆精品在线观看| 韩国女主播一区| 九一久久久久久| 日韩精品亚洲一区二区三区免费| 亚洲欧洲在线观看av| 久久久久久久久伊人| 日韩欧美在线123| 欧美一区二区视频在线观看2022| 在线精品视频免费观看| 91在线码无精品| 91视频国产资源| av中文字幕一区| aaa欧美日韩| 91在线视频在线| 97久久精品人人做人人爽| 国产成人a级片| 成人午夜短视频| www.视频一区| 99国产精品久久久久久久久久 | 蜜乳av一区二区| 男女性色大片免费观看一区二区| 亚洲一区二区三区在线| 亚洲一区二区三区四区中文字幕 | 开心九九激情九九欧美日韩精美视频电影| 亚洲影院在线观看| 婷婷开心久久网| 免费久久精品视频| 久久99在线观看| 国产美女久久久久| 成人午夜私人影院| 一本久道久久综合中文字幕| 色婷婷综合久色| 欧美日韩国产不卡| 欧美一区二区三区公司| 精品久久国产老人久久综合| 久久综合精品国产一区二区三区| 久久蜜桃av一区精品变态类天堂| 亚洲国产高清不卡| 一区二区三区国产精品| 天天综合日日夜夜精品| 韩国三级电影一区二区| 成人伦理片在线| 欧美亚洲高清一区| 日韩美女视频一区二区在线观看| 精品国产精品网麻豆系列| 国产亚洲人成网站| 一区二区欧美在线观看| 日本麻豆一区二区三区视频| 国产一区亚洲一区| 91亚洲精华国产精华精华液| 欧美吞精做爰啪啪高潮| 欧美成人艳星乳罩| 一色桃子久久精品亚洲| 五月天丁香久久| 高清beeg欧美| 337p亚洲精品色噜噜| 久久久精品欧美丰满| 亚洲激情中文1区| 九九视频精品免费| youjizz国产精品| 日韩一区二区免费高清| 日韩毛片一二三区| 久草中文综合在线| 在线观看日韩精品| 国产视频一区二区三区在线观看| 亚洲尤物在线视频观看| 国产精品99久久久久久有的能看| 在线这里只有精品| 国产日韩欧美精品综合| 舔着乳尖日韩一区| www.欧美精品一二区| 日韩精品在线一区二区| 亚洲一区精品在线| 成人性视频免费网站| 精品欧美乱码久久久久久1区2区 | 中文字幕在线观看一区| 日本亚洲最大的色成网站www| thepron国产精品| 精品奇米国产一区二区三区| 亚洲国产精品欧美一二99| 成人性生交大合| 国产日韩精品视频一区| 久久激情五月婷婷| 欧美一区二区三区免费观看视频| 亚洲欧美日本在线| caoporn国产精品| 久久你懂得1024| 韩国精品在线观看| 欧美一卡2卡三卡4卡5免费| 亚洲大片免费看| 欧美系列亚洲系列| 亚洲精品国产精华液| 色综合欧美在线| 亚洲欧美日韩国产另类专区| 成人黄色软件下载| 国产精品久久久久婷婷二区次| 国产精品1区二区.| 国产性天天综合网| 国产成人av电影在线播放| 久久午夜电影网| 国产精品系列在线播放| 国产日本一区二区| 国产成人免费视频| 国产欧美精品一区| 国产成人aaaa| 国产精品久线在线观看| 99在线精品视频| 亚洲女爱视频在线| 欧美午夜电影在线播放| 午夜精品久久久久久久久久 |