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

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

?? ch1_1view.cpp

?? vc++數字圖像處理 ,是一本很不錯的介紹數字圖像方面的書籍,這里有本書的全部源碼
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
}void CCh1_1View::OnMorphClose() {	//閉運算	// 獲取文檔	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;	}		int nMode;		// 創建對話框	cDlgMorphClose dlgPara;		// 初始化變量值	dlgPara.m_nMode = 0;		// 顯示對話框,提示用戶設定閉運算方向	if (dlgPara.DoModal() != IDOK)	{		// 返回		return;	}		// 獲取用戶設定的閉運算方向	nMode = dlgPara.m_nMode;	int structure[3][3];	if (nMode == 2)	{		structure[0][0]=dlgPara.m_nStructure1;		structure[0][1]=dlgPara.m_nStructure2;		structure[0][2]=dlgPara.m_nStructure3;		structure[1][0]=dlgPara.m_nStructure4;		structure[1][1]=dlgPara.m_nStructure5;		structure[1][2]=dlgPara.m_nStructure6;		structure[2][0]=dlgPara.m_nStructure7;		structure[2][1]=dlgPara.m_nStructure8;		structure[2][2]=dlgPara.m_nStructure9;	}		// 刪除對話框	delete dlgPara;			// 更改光標形狀	BeginWaitCursor();	// 找到DIB圖像象素起始位置	lpDIBBits = ::FindDIBBits(lpDIB);		// 調用CloseDIB()函數對DIB進行閉運算	if (CloseDIB(lpDIBBits, WIDTHBYTES(::DIBWidth(lpDIB) * 8), ::DIBHeight(lpDIB), nMode , structure))	{				// 設置臟標記		pDoc->SetModifiedFlag(TRUE);		// 更新視圖		pDoc->UpdateAllViews(NULL);	}	else	{		// 提示用戶		MessageBox("分配內存失敗或者圖像中含有0和255之外的像素值!", "系統提示" , MB_ICONINFORMATION | MB_OK);	}		// 解除鎖定	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());	// 恢復光標	EndWaitCursor();		}void CCh1_1View::OnMorphDilation() {	//膨脹運算	// 獲取文檔	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;	}		int nMode;		// 創建對話框	cDlgMorphDilation dlgPara;		// 初始化變量值	dlgPara.m_nMode = 0;		// 顯示對話框,提示用戶設定膨脹方向	if (dlgPara.DoModal() != IDOK)	{		// 返回		return;	}		// 獲取用戶設定的膨脹方向	nMode = dlgPara.m_nMode;	int structure[3][3];	if (nMode == 2)	{		structure[0][0]=dlgPara.m_nStructure1;		structure[0][1]=dlgPara.m_nStructure2;		structure[0][2]=dlgPara.m_nStructure3;		structure[1][0]=dlgPara.m_nStructure4;		structure[1][1]=dlgPara.m_nStructure5;		structure[1][2]=dlgPara.m_nStructure6;		structure[2][0]=dlgPara.m_nStructure7;		structure[2][1]=dlgPara.m_nStructure8;		structure[2][2]=dlgPara.m_nStructure9;	}		// 刪除對話框	delete dlgPara;			// 更改光標形狀	BeginWaitCursor();	// 找到DIB圖像象素起始位置	lpDIBBits = ::FindDIBBits(lpDIB);		// 調用DilationDIB()函數膨脹DIB	if (DilationDIB(lpDIBBits, WIDTHBYTES(::DIBWidth(lpDIB) * 8), ::DIBHeight(lpDIB), nMode , structure))	{				// 設置臟標記		pDoc->SetModifiedFlag(TRUE);		// 更新視圖		pDoc->UpdateAllViews(NULL);	}	else	{		// 提示用戶		MessageBox("分配內存失敗或者圖像中含有0和255之外的像素值!", "系統提示" , MB_ICONINFORMATION | MB_OK);	}		// 解除鎖定	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());	// 恢復光標	EndWaitCursor();	}////////////////////////////////////////////////////////////////////////////////////////  邊緣與輪廓//void CCh1_1View::OnEdgeHough() {	//Hough運算	// 獲取文檔	CCh1_1Doc* pDoc = GetDocument();		// 指向DIB的指針	LPSTR	lpDIB;	// 指向DIB象素指針	LPSTR   lpDIBBits;		// 鎖定DIB	lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) pDoc->GetHDIB());		// 判斷是否是8-bpp位圖(這里為了方便,只處理8-bpp位圖的Hough變換,其它的可以類推)	if (::DIBNumColors(lpDIB) != 256)	{		// 提示用戶		MessageBox("目前只支持256色位圖的運算!", "系統提示" , MB_ICONINFORMATION | MB_OK);		// 解除鎖定		::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());				// 返回		return;	}		// 更改光標形狀	BeginWaitCursor();	// 找到DIB圖像象素起始位置	lpDIBBits = ::FindDIBBits(lpDIB);		// 調用HoughDIB()函數對DIB	if (HoughDIB(lpDIBBits, ::DIBWidth(lpDIB), ::DIBHeight(lpDIB)))	{				// 設置臟標記		pDoc->SetModifiedFlag(TRUE);		// 更新視圖		pDoc->UpdateAllViews(NULL);	}	else	{		// 提示用戶		MessageBox("分配內存失敗或者圖像中含有0和255之外的像素值!", "系統提示" , MB_ICONINFORMATION | MB_OK);	}		// 解除鎖定	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());	// 恢復光標	EndWaitCursor();	}void CCh1_1View::OnEdgeGauss() {	//Gauss邊緣檢測運算	// 獲取文檔	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);		// 調用GaussDIB()函數對DIB進行邊緣檢測	if (GaussDIB(lpDIBBits, WIDTHBYTES(::DIBWidth(lpDIB) * 8), ::DIBHeight(lpDIB)))	{				// 設置臟標記		pDoc->SetModifiedFlag(TRUE);		// 更新視圖		pDoc->UpdateAllViews(NULL);	}	else	{		// 提示用戶		MessageBox("分配內存失敗!", "系統提示" , MB_ICONINFORMATION | MB_OK);	}		// 解除鎖定	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());	// 恢復光標	EndWaitCursor();	}void CCh1_1View::OnEdgeKirsch() {	//Kirsch邊緣檢測運算	// 獲取文檔	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);		// 調用KirschDIB()函數對DIB進行邊緣檢測	if (KirschDIB(lpDIBBits, WIDTHBYTES(::DIBWidth(lpDIB) * 8), ::DIBHeight(lpDIB)))	{				// 設置臟標記		pDoc->SetModifiedFlag(TRUE);		// 更新視圖		pDoc->UpdateAllViews(NULL);	}	else	{		// 提示用戶		MessageBox("分配內存失敗!", "系統提示" , MB_ICONINFORMATION | MB_OK);	}		// 解除鎖定	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());	// 恢復光標	EndWaitCursor();	}void CCh1_1View::OnEdgePrewitt() {	//Prewitt邊緣檢測運算	// 獲取文檔	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);		// 調用PrewittDIB()函數對DIB進行邊緣檢測	if (PrewittDIB(lpDIBBits, WIDTHBYTES(::DIBWidth(lpDIB) * 8), ::DIBHeight(lpDIB)))	{				// 設置臟標記		pDoc->SetModifiedFlag(TRUE);		// 更新視圖		pDoc->UpdateAllViews(NULL);	}	else	{		// 提示用戶		MessageBox("分配內存失敗!", "系統提示" , MB_ICONINFORMATION | MB_OK);	}		// 解除鎖定	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());	// 恢復光標	EndWaitCursor();	}void CCh1_1View::OnEdgeRobert() {	//Robert邊緣檢測運算	// 獲取文檔	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);		// 調用RobertDIB()函數對DIB進行邊緣檢測	if (RobertDIB(lpDIBBits, WIDTHBYTES(::DIBWidth(lpDIB) * 8), ::DIBHeight(lpDIB)))	{				// 設置臟標記		pDoc->SetModifiedFlag(TRUE);		// 更新視圖		pDoc->UpdateAllViews(NULL);	}	else	{		// 提示用戶		MessageBox("分配內存失敗!", "系統提示" , MB_ICONINFORMATION | MB_OK);	}		// 解除鎖定	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());	// 恢復光標	EndWaitCursor();		}void CCh1_1View::OnEdgeSobel() {	//Sobel邊緣檢測運算	// 獲取文檔	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);		// 調用SobelDIB()函數對DIB進行邊緣檢測	if (SobelDIB(lpDIBBits, WIDTHBYTES(::DIBWidth(lpDIB) * 8), ::DIBHeight(lpDIB)))	{				// 設置臟標記		pDoc->SetModifiedFlag(TRUE);		// 更新視圖		pDoc->UpdateAllViews(NULL);	}	else	{		// 提示用戶		MessageBox("分配內存失敗!", "系統提示" , MB_ICONINFORMATION | MB_OK);	}		// 解除鎖定	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());	// 恢復光標	EndWaitCursor();			}void CCh1_1View::OnEdgeFill() {	//種子填充運算	// 獲取文檔	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);		// 調用FillDIB()函數對DIB進行種子填充	if (FillDIB(lpDIBBits, WIDTHBYTES(::DIBWidth(lpDIB) * 8), ::DIBHeight(lpDIB)))	{				// 設置臟標記		pDoc->SetModifiedFlag(TRUE);		// 更新視圖		pDoc->UpdateAllViews(NULL);	}	else	{		// 提示用戶		MessageBox("分配內存失敗!", "系統提示" , MB_ICONINFORMATION | MB_OK);	}		// 解除鎖定	::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());	// 恢復光標	EndWaitCursor();		}void CCh1_1View::OnEdgeContour() {	//輪廓提取運算	// 獲取文檔	CCh1_1Doc* pDoc = GetDocument();		// 指向DIB的指針	LPSTR	lpDIB;	// 指向DIB象素指針	LPSTR   lpDIBBits;		// 鎖定DIB	lpDIB = (LPSTR) ::GlobalLock

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩国产欧美在线播放| 99精品一区二区| 五月激情综合色| 亚洲女同女同女同女同女同69| 精品粉嫩超白一线天av| 欧美大片日本大片免费观看| 欧美精品亚洲二区| 欧美精品乱人伦久久久久久| 欧美亚洲国产一卡| 欧美特级限制片免费在线观看| 波多野结衣一区二区三区 | 亚洲蜜臀av乱码久久精品| 国产欧美精品一区二区三区四区| 久久品道一品道久久精品| 欧美不卡在线视频| 欧美精品一区二区三区蜜桃| 日韩写真欧美这视频| 欧美大胆一级视频| 精品国产免费人成电影在线观看四季 | 日韩欧美黄色影院| 日韩一区二区三区三四区视频在线观看| 7777精品伊人久久久大香线蕉经典版下载 | 国产成人欧美日韩在线电影| 国产福利精品一区二区| av一区二区三区| 97精品久久久久中文字幕| 欧美在线观看禁18| 51精品国自产在线| 精品欧美一区二区三区精品久久| 26uuuu精品一区二区| 中文字幕欧美日韩一区| 亚洲天堂成人在线观看| 亚洲国产精品一区二区www| 日日摸夜夜添夜夜添亚洲女人| 麻豆精品一区二区三区| 国产一区二区三区综合| 成人av资源在线观看| 在线视频一区二区三区| 欧美一区二区三区在线观看视频| 欧美电影免费观看高清完整版在| 日本一二三不卡| 一级女性全黄久久生活片免费| 午夜电影网亚洲视频| 蜜臀va亚洲va欧美va天堂 | 欧美刺激脚交jootjob| 国产亚洲福利社区一区| 一区二区三区小说| 蜜桃视频第一区免费观看| 福利一区二区在线观看| 在线免费不卡电影| 精品久久久久久亚洲综合网 | 韩国女主播成人在线观看| av电影在线观看完整版一区二区 | 亚洲黄色av一区| 久久不见久久见免费视频1| 粉嫩13p一区二区三区| 欧美日韩二区三区| 久久―日本道色综合久久| 一区二区三区精品在线观看| 美日韩一区二区三区| 一本色道久久加勒比精品| 日韩欧美国产三级| 悠悠色在线精品| 韩国一区二区在线观看| 欧美性色aⅴ视频一区日韩精品| 欧美精品一区二区三区蜜桃 | 日本aⅴ免费视频一区二区三区| 成人激情小说网站| 91精品麻豆日日躁夜夜躁| 国产精品看片你懂得| 久久精品国产免费| 欧美日韩中文字幕一区二区| 国产精品视频线看| 麻豆国产欧美日韩综合精品二区| 一本色道综合亚洲| 国产精品天干天干在线综合| 久久成人久久爱| 91 com成人网| 一区二区成人在线观看| 99久久精品99国产精品| 国产日韩欧美综合一区| 麻豆成人久久精品二区三区小说| 色狠狠色狠狠综合| 国产精品美女视频| 黄网站免费久久| 日韩欧美不卡在线观看视频| 亚洲国产毛片aaaaa无费看| 99在线精品免费| 国产欧美精品国产国产专区| 男人的j进女人的j一区| 欧美综合天天夜夜久久| 国产亚洲va综合人人澡精品 | 精品国产乱码久久久久久闺蜜| 久久精品视频免费观看| 毛片一区二区三区| 91官网在线免费观看| 国产欧美日韩综合| 久久精品72免费观看| 欧美性一二三区| 一区二区在线观看av| 丁香另类激情小说| 精品国产自在久精品国产| 亚洲h动漫在线| 97精品电影院| 国产精品视频九色porn| 国产xxx精品视频大全| 欧美成人一区二区三区片免费| 亚洲超碰97人人做人人爱| 91美女片黄在线观看| 中文字幕+乱码+中文字幕一区| 国产一区二区三区四区五区入口 | 91麻豆精品国产91久久久使用方法| 中文字幕欧美一区| 国产精品99久久久久久久女警| 91精品国产入口在线| 亚洲图片欧美一区| www.欧美日韩国产在线| 中文字幕一区二区三区av| 国产suv一区二区三区88区| 久久久亚洲国产美女国产盗摄 | 在线影院国内精品| 日韩美女视频一区二区| 成人黄页毛片网站| 国产清纯美女被跳蛋高潮一区二区久久w| 麻豆国产一区二区| 欧美日韩成人综合天天影院| 蜜桃一区二区三区在线| 日韩欧美三级在线| 狠狠色丁香久久婷婷综| 久久久久国产精品免费免费搜索| 成人午夜在线免费| 国产精品久久久久久久久图文区 | www.亚洲国产| 自拍偷拍国产亚洲| 欧美另类一区二区三区| 日日夜夜精品视频免费| 欧美一区二区久久| 久久99久久久久| 精品国产乱码久久久久久久| 国产伦精品一区二区三区在线观看 | 舔着乳尖日韩一区| 欧美一区二区在线不卡| 久久国内精品自在自线400部| 精品国产乱码久久久久久图片| 日本美女一区二区三区视频| 国产欧美中文在线| 成人avav在线| 亚洲精品日产精品乱码不卡| 欧美日韩国产综合一区二区三区| 视频一区在线播放| 精品久久久影院| 青青草原综合久久大伊人精品 | 欧美精品乱码久久久久久| 亚洲老司机在线| 欧美日韩国产综合久久| 日韩av中文字幕一区二区 | 亚洲一区二区三区四区在线观看| 欧美日韩亚洲另类| 五月激情综合婷婷| 中文字幕高清一区| 在线观看日韩高清av| 男人的天堂亚洲一区| 国产亚洲成年网址在线观看| 91蝌蚪porny九色| 午夜精品视频一区| 精品国产免费一区二区三区四区| 亚洲愉拍自拍另类高清精品| 欧美日韩精品一区二区天天拍小说| 日韩制服丝袜av| 久久综合资源网| 91麻豆产精品久久久久久| 午夜视频在线观看一区二区| 国产高清精品久久久久| 日韩三级视频中文字幕| 粉嫩aⅴ一区二区三区四区五区| 国产精品传媒在线| www.久久精品| 日韩精品电影一区亚洲| 日韩欧美电影一区| 国产一区二区三区在线看麻豆| 最新中文字幕一区二区三区| 在线播放91灌醉迷j高跟美女| 久久99精品久久久久久| 亚洲精品中文在线| 精品国产伦一区二区三区观看体验| 91影院在线观看| 久久99精品久久久| 亚洲激情av在线| 国产亚洲综合色| 欧美美女一区二区三区| 粗大黑人巨茎大战欧美成人| 天堂va蜜桃一区二区三区漫画版| 日本一区二区三区dvd视频在线| 欧美美女网站色| 日韩电影免费一区| 日韩专区中文字幕一区二区| 日韩一区欧美小说| 久久综合九色综合97_久久久| 欧美精品第1页| 色哟哟在线观看一区二区三区|