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

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

?? dlgpointdz.cpp

?? 電子書《數字圖像處理學》Visual C++實現 郎銳編寫 所附源碼
?? CPP
字號:
// ************************************************************************
//  文件名:DlgPointDZ.cpp
//
//  灰度帶阻處理控制面板類:
//
// ************************************************************************

#include "stdafx.h"
#include "DIP_System.h"
#include "DlgPointDZ.h"
#include "GrayProc.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDlgPointDZ dialog


CDlgPointDZ::CDlgPointDZ(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgPointDZ::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgPointDZ)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	m_bLow = 0;
	m_bUp = 255;
}


void CDlgPointDZ::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgPointDZ)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgPointDZ, CDialog)
	//{{AFX_MSG_MAP(CDlgPointDZ)
	ON_WM_LBUTTONDOWN()
	ON_WM_LBUTTONUP()
	ON_WM_MOUSEMOVE()
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgPointDZ message handlers

BOOL CDlgPointDZ::OnInitDialog() 
{
	// 調用默認OnInitDialog函數
	CDialog::OnInitDialog();
	
	// 獲取繪制直方圖的標簽
	CWnd* pWnd = GetDlgItem(IDC_COORD);
	
	// 計算接受鼠標事件的有效區域
	pWnd->GetClientRect(m_MouseRect);
	pWnd->ClientToScreen(&m_MouseRect);
	
	CRect rect;
	GetClientRect(rect);
	ClientToScreen(&rect);
	
	m_MouseRect.top -= rect.top;
	m_MouseRect.left -= rect.left;
	
	// 設置接受鼠標事件的有效區域
	m_MouseRect.top += 25;
	m_MouseRect.left += 10;
	m_MouseRect.bottom = m_MouseRect.top + 255;
	m_MouseRect.right = m_MouseRect.left + 256;
	
	// 初始化拖動狀態
	m_iIsDraging = 0;
	
	// 返回TRUE
	return TRUE;
}

void CDlgPointDZ::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// 當用戶單擊鼠標左鍵開始拖動
	if(m_MouseRect.PtInRect(point))
	{
		if (point.x == (m_MouseRect.left + m_bLow))
		{
			
			// 設置拖動狀態1,拖動下限
			m_iIsDraging = 1;
			
			// 更改光標
			::SetCursor(::LoadCursor(NULL, IDC_SIZEWE));
		}
		else if (point.x == (m_MouseRect.left + m_bUp))
		{
			
			// 設置拖動狀態為2,拖動上限
			m_iIsDraging = 2;
			
			// 更改光標
			::SetCursor(::LoadCursor(NULL, IDC_SIZEWE));
		}
	}
	
	// 默認單擊鼠標左鍵處理事件
	CDialog::OnLButtonDown(nFlags, point);
}

void CDlgPointDZ::OnLButtonUp(UINT nFlags, CPoint point) 
{
	// 當用戶釋放鼠標左鍵停止拖動
	if (m_iIsDraging != 0)
	{
		// 重置拖動狀態
		m_iIsDraging = 0;

		// 初始化臟標記為FALSE
 		m_pDoc->SetModifiedFlag(FALSE);
 
		// 重新裝載文件
		m_pDoc->OnFileReopen();

		// 調用PointDZ()函數進行灰度帶阻處理
		CGrayProc clsGrayProc;
		clsGrayProc.PointDZ(m_pDoc->GetHDIB(), m_bLow, m_bUp);
	
		// 設置臟標記
		m_pDoc->SetModifiedFlag(TRUE);
	
		// 更新視圖
		m_pDoc->UpdateAllViews(NULL);
	}
	
	// 默認釋放鼠標左鍵處理事件
	CDialog::OnLButtonUp(nFlags, point);
}

void CDlgPointDZ::OnMouseMove(UINT nFlags, CPoint point) 
{
	// 判斷當前光標是否在繪制區域
	if(m_MouseRect.PtInRect(point))
	{
		// 判斷是否正在拖動
		if (m_iIsDraging != 0)
		{
			// 判斷正在拖動上限還是下限
			if (m_iIsDraging == 1)
			{
				// 判斷是否下限<上限
				if (point.x - m_MouseRect.left < m_bUp)
				{
					// 更改下限
					m_bLow = (BYTE) (point.x - m_MouseRect.left);
				}
				else
				{
					// 下限拖過上限,設置為上限-1
					m_bLow = m_bUp - 1;
					
					// 重設鼠標位置
					point.x = m_MouseRect.left + m_bUp - 1;
				}
			}
			else
			{
				// 正在拖動上限
				
				// 判斷是否上限>下限
				if (point.x - m_MouseRect.left > m_bLow)
				{
					// 更改下限
					m_bUp = (BYTE) (point.x - m_MouseRect.left);
				}
				else
				{
					// 下限拖過上限,設置為下限+1
					m_bUp = m_bLow + 1;
					
					// 重設鼠標位置
					point.x = m_MouseRect.left + m_bLow + 1;
				}
			}
			
			// 更改光標
			::SetCursor(::LoadCursor(NULL, IDC_SIZEWE));
			
			// 更新
			UpdateData(FALSE);
			
			// 重繪
			InvalidateRect(m_MouseRect, TRUE);
		}
		else if (point.x == (m_MouseRect.left + m_bLow) || point.x == (m_MouseRect.left + m_bUp))
		{
			// 更改光標
			::SetCursor(::LoadCursor(NULL, IDC_SIZEWE));
		}
	}
	
	// 默認鼠標移動處理事件
	CDialog::OnMouseMove(nFlags, point);
}

void CDlgPointDZ::OnPaint() 
{
	// 字符串
	CString str;
	
	// 循環變量
	LONG i;

	// 最大計數
	float fMaxIntensity = 0;

	// 設備上下文
	CPaintDC dc(this);
	
	// 獲取繪制坐標的文本框
	CWnd* pWnd = GetDlgItem(IDC_COORD);
	
	// 指針
	CDC* pDC = pWnd->GetDC();
	pWnd->Invalidate();
	pWnd->UpdateWindow();
	
	pDC->Rectangle(0,0,330,300);
	
	// 創建畫筆對象
	CPen* pPenRed = new CPen;
	
	// 紅色畫筆
	pPenRed->CreatePen(PS_SOLID,2,RGB(255,0,0));
	
	// 創建畫筆對象
	CPen* pPenBlue = new CPen;
	
	// 藍色畫筆
	pPenBlue->CreatePen(PS_SOLID,2,RGB(0,0, 255));
	
	// 創建畫筆對象
	CPen* pPenGreen = new CPen;
	
	// 綠色畫筆
	pPenGreen->CreatePen(PS_DOT,1,RGB(0,255,0));
	
	// 選中當前紅色畫筆,并保存以前的畫筆
	CGdiObject* pOldPen = pDC->SelectObject(pPenRed);
	
	// 繪制坐標軸
	pDC->MoveTo(10,10);
	
	// 垂直軸
	pDC->LineTo(10,280);
	
	// 水平軸
	pDC->LineTo(320,280);
	
	// 寫坐標
	str.Format("0");
	pDC->TextOut(10, 281, str);
	
	str.Format("255");
	pDC->TextOut(265, 281, str);
	pDC->TextOut(11, 25, str);
	
	// 繪制X軸箭頭
	pDC->LineTo(315,275);
	pDC->MoveTo(320,280);
	pDC->LineTo(315,285);
	
	// 繪制X軸箭頭
	pDC->MoveTo(10,10);
	pDC->LineTo(5,15);
	pDC->MoveTo(10,10);
	pDC->LineTo(15,15);
	
	// 更改成綠色畫筆
	pDC->SelectObject(pPenGreen);	
	
	// 繪制窗口上下限
	pDC->MoveTo(m_bLow + 10, 25);
	pDC->LineTo(m_bLow + 10, 280);
	
	pDC->MoveTo(m_bUp + 10, 25);
	pDC->LineTo(m_bUp + 10, 280);
	
	// 更改成藍色畫筆
	pDC->SelectObject(pPenRed);	
	
	// 繪制坐標值
	str.Format("(%d, %d)", m_bLow, m_bLow);
	pDC->TextOut(m_bLow + 10, 281 - m_bLow, str);
	str.Format("(%d, %d)", m_bUp, m_bUp);
	pDC->TextOut(m_bUp + 10, 281 - m_bUp, str);
	
	// 繪制用戶指定的窗口(注意轉換坐標系)
	pDC->MoveTo(10, 25);
	pDC->LineTo(m_bLow + 10, 25);
	pDC->LineTo(m_bLow + 10, 280 - m_bLow);
	pDC->LineTo(m_bUp + 10, 280 - m_bUp);
	pDC->LineTo(m_bUp + 10, 25);
	pDC->LineTo(265, 25);
	
	// 計算最大計數值
	for (i = 0; i < 256; i ++)
	{
		// 判斷是否大于當前最大值
		if (m_fIntensity[i] > fMaxIntensity)
		{
			// 更新最大值
			fMaxIntensity = m_fIntensity[i];
		}
	}

	// 更改成藍色畫筆
	pDC->SelectObject(pPenBlue);	
	
	// 判斷是否有計數
	if (fMaxIntensity > 0)
	{
		// 繪制直方圖
		for (i = 0; i < 256; i ++)
		{
			pDC->MoveTo(i + 10, 280);
			pDC->LineTo(i + 10, 281 - (int) (m_fIntensity[i] * 256 / fMaxIntensity));
		}
	}

	// 恢復以前的畫筆
	pDC->SelectObject(pOldPen);	
	
	// 繪制邊緣
	pDC->MoveTo(10,25);
	pDC->LineTo(265,25);
	pDC->LineTo(265,280);
	
	// 刪除新的畫筆
	delete pPenRed;
	delete pPenBlue;
	delete pPenGreen;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久亚洲一级片| 欧日韩精品视频| 美女脱光内衣内裤视频久久影院| 中文字幕一区不卡| 中文字幕欧美三区| 亚洲欧美日韩成人高清在线一区| 国产精品美女久久久久高潮| 国产精品夫妻自拍| 国产精品成人一区二区艾草| 亚洲女人****多毛耸耸8| 亚洲乱码中文字幕| 午夜精品福利一区二区蜜股av| 五月婷婷综合网| 精品一二线国产| 国产伦精品一区二区三区视频青涩 | 亚洲青青青在线视频| 一区二区欧美国产| 热久久国产精品| 国产精品77777竹菊影视小说| 97久久人人超碰| 欧美日韩在线播放三区四区| 欧美成人aa大片| 成人欧美一区二区三区小说 | 成人app软件下载大全免费| 91免费小视频| 日韩欧美国产综合在线一区二区三区| 久久久久国产免费免费 | 欧美区视频在线观看| 2023国产精品| 蜜桃av噜噜一区| 国产超碰在线一区| 欧美日韩精品一区视频| 久久美女高清视频 | 日韩精品一区国产麻豆| 国产精品欧美一区喷水| 天天综合天天综合色| 国产91精品精华液一区二区三区 | 亚洲嫩草精品久久| 国内精品久久久久影院薰衣草| 色一情一乱一乱一91av| 日韩欧美123| 亚洲综合无码一区二区| 国产v综合v亚洲欧| 欧美一区二区三区免费在线看| 国产精品久久久久久亚洲毛片 | 亚洲欧美日韩系列| 国产一区二区三区不卡在线观看| 欧美在线制服丝袜| 欧美韩国日本综合| 狠狠久久亚洲欧美| 欧美一级生活片| 亚洲靠逼com| 成人午夜碰碰视频| 久久这里只有精品首页| 日本va欧美va瓶| 欧美日韩精品一区二区三区四区| 国产精品久久福利| 国产麻豆9l精品三级站| 欧美成人r级一区二区三区| 五月天激情小说综合| 色婷婷亚洲婷婷| 国产精品国产精品国产专区不蜜| 国产剧情在线观看一区二区| 欧美一区二区精美| 日本欧美肥老太交大片| 欧美日韩成人高清| 亚洲电影在线免费观看| 欧美丝袜丝交足nylons图片| 亚洲免费观看视频| av网站一区二区三区| 中文子幕无线码一区tr| 高清不卡一区二区在线| 国产日产精品1区| 福利视频网站一区二区三区| 国产亚洲美州欧州综合国| 国产一区二区三区免费看| 久久久蜜桃精品| 粉嫩av亚洲一区二区图片| 国产午夜精品美女毛片视频| 成人一级视频在线观看| 国产精品久久一卡二卡| 99热精品国产| 亚洲国产综合色| 91精品国产综合久久久久久| 青青草97国产精品免费观看| 91精品国产91热久久久做人人 | 欧美国产日本韩| 国产成人精品1024| 日韩一区有码在线| 欧美视频自拍偷拍| 久久综合综合久久综合| 久久久国产精品午夜一区ai换脸| 不卡的av网站| 婷婷丁香激情综合| 欧美电影免费观看高清完整版在线| 狂野欧美性猛交blacked| 欧美激情一区三区| 欧美日免费三级在线| 麻豆一区二区99久久久久| 日本一区二区三区四区| 欧美亚洲愉拍一区二区| 免费精品视频最新在线| 国产精品狼人久久影院观看方式| 91精品办公室少妇高潮对白| 免费国产亚洲视频| 亚洲欧美日韩人成在线播放| 日韩三级av在线播放| 99久久夜色精品国产网站| 日日夜夜精品视频免费| 国产精品久久看| 精品少妇一区二区三区免费观看 | 久久福利资源站| 国产精品国产成人国产三级| 91麻豆精品国产91久久久| 成人免费观看av| 免费人成在线不卡| 亚洲一区二区三区不卡国产欧美| 久久久综合视频| 欧美高清视频在线高清观看mv色露露十八 | 92精品国产成人观看免费 | 中文字幕一区二区在线观看| 欧美巨大另类极品videosbest| 懂色av中文字幕一区二区三区| 亚洲成a人片在线不卡一二三区| 国产日韩欧美不卡| 欧美一级生活片| 欧美剧情片在线观看| 欧美特级限制片免费在线观看| 成人高清视频在线| 国产乱理伦片在线观看夜一区| 三级精品在线观看| 依依成人精品视频| 日韩一区欧美一区| 国产欧美精品一区aⅴ影院 | 成人少妇影院yyyy| 另类成人小视频在线| 亚洲高清免费观看高清完整版在线观看| 久久精品一区二区三区不卡| 欧美大片一区二区| 日韩视频免费观看高清完整版| 欧美手机在线视频| 欧美色视频在线观看| 在线观看av一区二区| 色综合色综合色综合色综合色综合 | 成人性生交大合| 国产高清精品网站| 精久久久久久久久久久| 激情亚洲综合在线| 精品一区二区三区香蕉蜜桃| 看片网站欧美日韩| 国产麻豆9l精品三级站| 国产精品夜夜爽| 成人免费毛片嘿嘿连载视频| 成年人网站91| 日本韩国欧美一区| 欧美少妇性性性| 69堂国产成人免费视频| 日韩欧美一区中文| 26uuu另类欧美亚洲曰本| 久久久欧美精品sm网站| 国产精品天美传媒沈樵| 中文字幕一区日韩精品欧美| 一区二区三区毛片| 日韩精品一卡二卡三卡四卡无卡| 欧美aⅴ一区二区三区视频| 免费三级欧美电影| 国产盗摄精品一区二区三区在线| 成人精品视频一区二区三区| 91久久精品一区二区三区| 欧美人成免费网站| 国产色一区二区| 亚洲四区在线观看| 日韩高清在线观看| 国产成人av一区二区三区在线 | 日韩写真欧美这视频| 日韩三区在线观看| 国产精品久久久久三级| 亚洲成人免费看| 韩国v欧美v日本v亚洲v| 91在线看国产| 日韩一级欧美一级| 国产精品国产馆在线真实露脸| 亚洲福利视频导航| 国产精品一二三区在线| 欧美日韩一区在线观看| 久久婷婷一区二区三区| 亚洲综合色丁香婷婷六月图片| 久久狠狠亚洲综合| 色综合激情五月| 久久网站最新地址| 日精品一区二区| 99久久久国产精品| 日韩欧美不卡在线观看视频| **性色生活片久久毛片| 久久不见久久见免费视频1| 91搞黄在线观看| 国产欧美综合在线观看第十页| 亚洲综合小说图片| 成人免费视频视频| 日韩精品一区二区三区老鸭窝|