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

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

?? makecolordib.cpp

?? 圖像處理算法相關VC程序 VC++圖像處理程序設計配套光盤
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
	BYTE *p_data;     //原圖數據區指針
	int wide,height,DibWidth;    //原圖長、寬、字節寬
	p_data=this->GetData ();   //取得原圖的數據區指針
    wide=this->GetWidth ();  //取得原圖的數據區寬度
    height=this->GetHeight ();   //取得原圖的數據區高度
	DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節數
    BYTE *p_temp=new BYTE[height*DibWidth];	// 暫時分配內存,以保存新圖像
	for(int j=0;j<height-4;j++)	// 每行
	{
		for(int i=0;i<DibWidth-1;i++)	// 每列
		{
			 int pby_pt=0;
			 //對像素執行算法
			 pby_pt=(*(p_data+(height-j-1)*DibWidth+i)-*(p_data+(height-j-1)*DibWidth+i+3))
				   *(*(p_data+(height-j-1)*DibWidth+i)-*(p_data+(height-j-1)*DibWidth+i+3))
				   +(*(p_data+(height-j-1)*DibWidth+i)-*(p_data+(height-j-2)*DibWidth+i))
				   *(*(p_data+(height-j-1)*DibWidth+i)-*(p_data+(height-j-2)*DibWidth+i));
			*(p_temp+(height-j-1)*DibWidth+i)=2*int(sqrt(pby_pt));
			//判斷合法性
			if(*(p_temp+(height-j-1)*DibWidth+i)<0)
				 *(p_temp+(height-j-1)*DibWidth+i)=0;
			if(*(p_temp+(height-j-1)*DibWidth+i)>255)
				 *(p_temp+(height-j-1)*DibWidth+i)=255;
		}
	}
    memcpy(p_data,p_temp,height*DibWidth);  // 復制處理后的圖像
    delete []p_temp;   //刪除暫時分配內存
}

/***************************************************************/
/*函數名稱:Smoothness()                                       */
/*函數類型:void                                               */
/*功能:使圖像平滑處理。                                       */
/***************************************************************/
void MakeColorDib::Smoothness()   //平滑處理
{
	BYTE *p_data;     //原圖數據區指針
	int wide,height,DibWidth;    //原圖長、寬、字節寬
	p_data=this->GetData ();   //取得原圖的數據區指針
    wide=this->GetWidth ();  //取得原圖的數據區寬度
    height=this->GetHeight ();   //取得原圖的數據區高度
	DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節數
    int h[3][3];////定義(3x3)矩陣
	h[0][0] = 1;  h[0][1] = 1; h[0][2] = 1;
	h[1][0] = 1;  h[1][1] = 1; h[1][2] = 1;
	h[2][0] = 1;  h[2][1] = 1; h[2][2] = 1;
    BYTE *p_temp=new BYTE[height*DibWidth];	// 暫時分配內存,以保存新圖像
	for(int j=0;j<height-2;j++)	// 每行
	{
		for(int i=0;i<DibWidth-8;i++)	// 每列
		{
	        double pby_pt=0;
                    //對應的第0行的值乘以矩陣對應值,再相加
		     pby_pt= h[0][0]*(*(p_data+(height-j-1)*DibWidth+i))
				    +h[0][1]*(*(p_data+(height-j-1)*DibWidth+i+3))
				    +h[0][2]*(*(p_data+(height-j-1)*DibWidth+i+6))
                    //對應的第1行的值乘以矩陣對應值,再相加
			    	+h[1][0]*(*(p_data+(height-j-2)*DibWidth+i))
			    	+h[1][1]*(*(p_data+(height-j-2)*DibWidth+i+3))
			    	+h[1][2]*(*(p_data+(height-j-2)*DibWidth+i+6))
                    //對應的第2行的值乘以矩陣對應值,再相加
    		        +h[2][0]*(*(p_data+(height-j-3)*DibWidth+i))
					+h[2][1]*(*(p_data+(height-j-3)*DibWidth+i+3))
					+h[2][2]*(*(p_data+(height-j-3)*DibWidth+i+6));
			*(p_temp+(height-j-2)*DibWidth+i+3)=abs(int(pby_pt/9));//取總和的的平均值
		}
	}
   	memcpy(p_data,p_temp,height*DibWidth);  // 復制處理后的圖像
   	delete []p_temp;//刪除暫時分配內存
}

/***************************************************************/
/*函數名稱:Embossment()                                       */
/*函數類型:void                                               */
/*功能:產生圖像浮雕處理效果。                                 */
/***************************************************************/
void MakeColorDib::Embossment()   //浮雕處理
{
	BYTE *p_data;     //原圖數據區指針
	int wide,height,DibWidth;    //原圖長、寬、字節寬
	p_data=this->GetData ();   //取得原圖的數據區指針
    wide=this->GetWidth ();  //取得原圖的數據區寬度
    height=this->GetHeight ();   //取得原圖的數據區高度
	DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節數
    BYTE *p_temp=new BYTE[height*DibWidth];	// 暫時分配內存,以保存新圖像
	for(int j=0;j<height;j++)	// 每行
	{
		for(int i=0;i<DibWidth-4;i++)	// 每列
		{
			 int pby_pt=0;
			 //對像素得每個分量執行算法
			 pby_pt=*(p_data+(height-j-1)*DibWidth+i)
				   -*(p_data+(height-j-1)*DibWidth+i+3)+128;
			 *(p_temp+(height-j-1)*DibWidth+i+3)=pby_pt;
			//檢驗合法性
			if(*(p_temp+(height-j-1)*DibWidth+i+3)<0)
				*(p_temp+(height-j-1)*DibWidth+i+3)=0;
			else if(*(p_temp+(height-j-1)*DibWidth+i+3)>255)
				*(p_temp+(height-j-1)*DibWidth+i+3)=255;
		}
	}
    memcpy(p_data,p_temp,height*DibWidth);  // 復制處理后的圖像
    delete []p_temp;   //刪除暫時分配內存
}

/***************************************************************/
/*函數名稱:Spread()                                           */
/*函數類型:void                                               */
/*功能:圖像擴散處理。                                         */
/***************************************************************/
void MakeColorDib::Spread()   //擴散處理
{ 
	BYTE *p_data;     //原圖數據區指針
	int wide,height,DibWidth;    //原圖長、寬、字節寬
	p_data=this->GetData ();   //取得原圖的數據區指針
    wide=this->GetWidth ();  //取得原圖的數據區寬度
    height=this->GetHeight ();   //取得原圖的數據區高度
	DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節數
    BYTE *p_temp=new BYTE[height*DibWidth];	// 暫時分配內存,以保存新圖像
	for(int j=0;j<height-4;j++)	// 每行
	{
		for(int i=0;i<DibWidth-14;i++)	// 每列
		{
			 int m=0,n=0;
			 m=rand()%5; //取得行隨機數
			 n=rand()%5; //取得列隨機數
			 int pby_pt=0;	
			 pby_pt=*(p_data+(height-j-1-m)*DibWidth+i+3*n);//得到對應隨機像素值
			 *(p_temp+(height-j-3)*DibWidth+i+6)=pby_pt;
		}
	}
    memcpy(p_data,p_temp,height*DibWidth);  // 復制處理后的圖像
    delete []p_temp;   //刪除暫時分配內存
}

/***************************************************************/
/*函數名稱:Sharp()                                            */
/*函數類型:void                                               */
/*功能:圖像銳化處理。                                         */
/***************************************************************/
void MakeColorDib::Sharp()   //圖像銳化
{
 	BYTE *p_data;     //原圖數據區指針
	int wide,height,DibWidth;    //原圖長、寬、字節寬
	p_data=this->GetData ();   //取得原圖的數據區指針
    wide=this->GetWidth ();  //取得原圖的數據區寬度
    height=this->GetHeight ();   //取得原圖的數據區高度
	DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節數
    BYTE *p_temp=new BYTE[height*DibWidth];
	for(int j=0;j<height-1;j++)	// 每行
	{
		for(int i=0;i<DibWidth-5;i++)	// 每列
		{
	        int pby_pt=0;	
			pby_pt= *(p_data+(height-j-2)*DibWidth+i+3)
			       -*(p_data+(height-j-1)*DibWidth+i);
			*(p_temp+(height-j-2)*DibWidth+i+3)=*(p_data+(height-j-2)*DibWidth+i+3)
				                                 +abs(int(pby_pt/4));
			if(*(p_temp+(height-j-2)*DibWidth+i+3)>255)
			   *(p_temp+(height-j-2)*DibWidth+i+3)=255;
		}
	}
    memcpy(p_data,p_temp,height*DibWidth);  // 復制處理后的圖像
    delete []p_temp;  //刪除暫時分配內存
}

/***************************************************************/
/*函數名稱:HighLVBO(int m_GaoTong)                            */
/*函數類型:void                                               */
/*參數:int m_GaoTong,用戶給定的閾值來選擇矩陣                */
/*功能:對圖像使用閾值法進行高通濾波。                         */
/***************************************************************/
void MakeColorDib::HighLVBO(int m_GaoTong)   //高通濾波
{
	BYTE *p_data;     //原圖數據區指針
	int wide,height,DibWidth;    //原圖長、寬、字節寬
	p_data=this->GetData ();   //取得原圖的數據區指針
    wide=this->GetWidth ();  //取得原圖的數據區寬度
    height=this->GetHeight ();   //取得原圖的數據區高度
	DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節數
	int h[3][3];  ////定義(3x3)矩陣
	if(m_GaoTong==1)
	{   //矩陣1(基本高通)
		h[0][0] =1;   h[0][1] =-2;  h[0][2] =1;
		h[1][0] =-2;  h[1][1] =5;   h[1][2] =-2;
		h[2][0] =1;   h[2][1] =-2;  h[2][2] =1;
	}
	else if(m_GaoTong==2)
	{   //矩陣2(中等高通)
		h[0][0] = 0;   h[0][1] = -1; h[0][2] = 0;
		h[1][0] = -1;  h[1][1] =  5; h[1][2] = -1;
		h[2][0] = 0;   h[2][1] = -1; h[2][2] = 0;
	}
	else
	{   //矩陣3(過量高通)
		h[0][0] = -1;  h[0][1] = -1; h[0][2] = -1;
		h[1][0] = -1;  h[1][1] =  9; h[1][2] = -1;
		h[2][0] = -1;  h[2][1] = -1; h[2][2] = -1;
	}
    BYTE *p_temp=new BYTE[height*DibWidth];	// 暫時分配內存,以保存新圖像
	for(int j=0;j<height-2;j++)	// 每行
	{
		for(int i=0;i<DibWidth-8;i++)	// 每列
		{
			int pby_pt=0;
			//對應的第0行的值乘以矩陣對應值,再相加
			pby_pt=  h[0][0]*(*(p_data+(height-j-1)*DibWidth+i))
				+h[0][1]*(*(p_data+(height-j-1)*DibWidth+i+3))
				+h[0][2]*(*(p_data+(height-j-1)*DibWidth+i+6))
				//對應的第1行的值乘以矩陣對應值,再相加
				+h[1][0]*(*(p_data+(height-j-2)*DibWidth+i))
				+h[1][1]*(*(p_data+(height-j-2)*DibWidth+i+3))
				+h[1][2]*(*(p_data+(height-j-2)*DibWidth+i+6))
				//對應的第2行的值乘以矩陣對應值,再相加
				+h[2][0]*(*(p_data+(height-j-3)*DibWidth+i))
				+h[2][1]*(*(p_data+(height-j-3)*DibWidth+i+3))
				+h[2][2]*(*(p_data+(height-j-3)*DibWidth+i+6));
			*(p_temp+(height-j-2)*DibWidth+i+3)=abs(pby_pt);
			if(pby_pt>255) //判斷是否越界
				*(p_temp+(height-j-2)*DibWidth+i+3)=255;
		}
	}
   	memcpy(p_data,p_temp,height*DibWidth);  // 復制處理后的圖像
    delete []p_temp;  //刪除暫時分配內存
}

/***************************************************************/
/*函數名稱:LowLVBO()                                          */
/*函數類型:void                                               */
/*功能:實現圖像低通濾波(3x3)。                                */
/***************************************************************/
void MakeColorDib::LowLVBO()   //低通濾波(3x3)
{
	BYTE *p_data;     //原圖數據區指針
	int wide,height,DibWidth;    //原圖長、寬、字節寬
	p_data=this->GetData ();   //取得原圖的數據區指針
    wide=this->GetWidth ();  //取得原圖的數據區寬度
    height=this->GetHeight ();   //取得原圖的數據區高度
	DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節數
    double h[3][3];////定義(3x3)矩陣
	h[0][0] = 0.1;  h[0][1] = 0.1; h[0][2] = 0.1;
	h[1][0] = 0.1;  h[1][1] = 0.2; h[1][2] = 0.1;
	h[2][0] = 0.1;  h[2][1] = 0.1; h[2][2] = 0.1;
	BYTE *p_temp=new BYTE[height*DibWidth];	// 暫時分配內存,以保存新圖像
	for(int j=0;j<height-2;j++)	// 每行
	{
		for(int i=0;i<DibWidth-8;i++)	// 每列
		{
			double pby_pt=0;
            //對應的第0行的值乘以矩陣對應值,再相加	
			pby_pt=  h[0][0]*(*(p_data+(height-j-1)*DibWidth+i))
				+h[0][1]*(*(p_data+(height-j-1)*DibWidth+i+3))
				+h[0][2]*(*(p_data+(height-j-1)*DibWidth+i+6))
				//對應的第0行的值乘以矩陣對應值,再相加
				+h[1][0]*(*(p_data+(height-j-2)*DibWidth+i))

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
26uuu久久天堂性欧美| 欧美一区二区三区视频在线| 99精品欧美一区二区三区小说| 色婷婷亚洲综合| 久久久久久久国产精品影院| 亚洲一区二区三区精品在线| 国产精品一卡二| 91麻豆精品91久久久久同性| 一区二区在线观看免费| 国产美女视频一区| 制服丝袜中文字幕一区| 有码一区二区三区| 成人福利在线看| 国产嫩草影院久久久久| 亚洲一区二区三区爽爽爽爽爽| 成人18精品视频| 国产农村妇女精品| 国产精品一区二区久久不卡| 日韩一区二区三区视频在线| 夜夜嗨av一区二区三区中文字幕| 成人av在线资源网站| 久久久久久久综合| 九一久久久久久| 精品国产1区2区3区| 蜜臀久久99精品久久久久宅男 | 亚洲精品老司机| 国产不卡在线一区| 久久久久久免费网| 国产激情视频一区二区三区欧美| 欧美精品一区二区久久婷婷| 日本成人中文字幕| 精品国产一区二区三区久久久蜜月| 水野朝阳av一区二区三区| 欧美色中文字幕| 亚洲风情在线资源站| 欧美久久高跟鞋激| 日韩国产欧美在线播放| 日韩三级在线观看| 国产精品一二三四| 中文字幕在线不卡| 日本高清不卡aⅴ免费网站| 一区二区三区在线播放| 欧美午夜电影网| 亚洲va欧美va人人爽午夜| 91精品国产一区二区| 日本伊人色综合网| 久久久www成人免费无遮挡大片| 国产一区二区伦理片| 亚洲欧美中日韩| 欧美揉bbbbb揉bbbbb| 日韩成人伦理电影在线观看| 日韩欧美成人一区| 国产成人日日夜夜| 亚洲精品免费电影| 欧美一区二区福利视频| 国产在线精品一区二区夜色| 欧美韩国日本不卡| 欧美日韩国产a| 国产在线一区二区| 一区二区视频在线看| 91精品国产综合久久福利软件| 激情都市一区二区| 一区二区三区四区中文字幕| 欧美一区二区三区日韩视频| 国产激情精品久久久第一区二区 | 欧美国产丝袜视频| 日本高清不卡视频| 精品亚洲国内自在自线福利| 国产精品你懂的在线| 欧美日韩国产美| 国产精品自拍av| 亚洲国产一区二区视频| 久久久久久久久久久久久夜| 在线观看亚洲精品| 国产不卡在线一区| 蜜桃精品视频在线| 一区二区三区自拍| 欧美激情一区在线| 91精品国产乱码久久蜜臀| 成人福利电影精品一区二区在线观看| 婷婷开心激情综合| 国产精品久久久久婷婷| 日韩三级视频在线观看| 欧美亚洲国产bt| 99免费精品视频| 国产高清不卡二三区| 丝袜美腿亚洲一区二区图片| 亚洲欧洲99久久| 国产欧美视频在线观看| 欧美一区二区女人| 欧美性色黄大片| 日本道免费精品一区二区三区| 另类的小说在线视频另类成人小视频在线| 中文字幕乱码日本亚洲一区二区 | 一本一本久久a久久精品综合麻豆| 美女www一区二区| 偷拍与自拍一区| 夜夜嗨av一区二区三区网页| 中文字幕在线视频一区| 国产午夜精品福利| 91精品综合久久久久久| 欧美日韩激情在线| 欧美日韩中文国产| 欧洲国内综合视频| 欧美性猛交xxxx乱大交退制版| 色婷婷亚洲综合| 色诱亚洲精品久久久久久| 91在线云播放| 色偷偷一区二区三区| 91小视频在线免费看| 波多野结衣中文字幕一区二区三区| 激情深爱一区二区| 激情综合网av| 国产精品一区免费在线观看| 久久99精品国产| 加勒比av一区二区| 国产一区二区美女诱惑| 国产一区二区三区在线观看精品 | 五月婷婷色综合| 天堂蜜桃一区二区三区| 亚洲va欧美va人人爽午夜| 亚洲成人中文在线| 爽好多水快深点欧美视频| 天天操天天干天天综合网| 丝袜诱惑制服诱惑色一区在线观看| 亚洲aaa精品| 男人的j进女人的j一区| 蜜臂av日日欢夜夜爽一区| 精品一区二区三区香蕉蜜桃| 久久精品国产精品青草| caoporm超碰国产精品| 成人激情小说网站| 日本高清无吗v一区| 91精选在线观看| 久久中文字幕电影| ●精品国产综合乱码久久久久| 亚洲最大成人综合| 天使萌一区二区三区免费观看| 卡一卡二国产精品 | 国产精品高潮呻吟| 亚洲精品久久久久久国产精华液| 午夜精品一区二区三区三上悠亚| 日本午夜精品一区二区三区电影| 麻豆成人免费电影| 成人高清视频免费观看| 欧美日韩卡一卡二| 国产无一区二区| 亚洲国产精品麻豆| 国产一区二区三区久久悠悠色av| 99久久精品国产网站| 欧美区一区二区三区| 久久久国产午夜精品| 亚洲精品老司机| 极品少妇一区二区| 色8久久精品久久久久久蜜| 91精品国产高清一区二区三区 | 精品国内二区三区| 亚洲欧美视频在线观看视频| 蜜臀av性久久久久蜜臀av麻豆| 高清日韩电视剧大全免费| 欧美日韩在线播放三区四区| www亚洲一区| 婷婷国产v国产偷v亚洲高清| 国产成人在线视频网站| 欧美久久一二三四区| 国产精品天美传媒| 麻豆91免费看| 欧美日韩一区不卡| 国产精品日产欧美久久久久| 丝袜亚洲另类欧美| 色综合久久综合网| 亚洲精品在线电影| 日韩国产在线一| 91免费视频大全| 国产视频一区不卡| 日本 国产 欧美色综合| 色综合久久88色综合天天6 | 日韩欧美国产不卡| 亚洲福中文字幕伊人影院| 国产99久久久国产精品免费看| 在线播放视频一区| 亚洲资源中文字幕| 99久久综合精品| 久久久久久黄色| 国产真实乱子伦精品视频| 在线91免费看| 亚洲国产精品久久不卡毛片| www.日本不卡| 国产女人18水真多18精品一级做| 狠狠v欧美v日韩v亚洲ⅴ| 91精品一区二区三区久久久久久 | 欧美大片免费久久精品三p| 视频一区视频二区中文| 在线视频你懂得一区| 亚洲人成小说网站色在线| jlzzjlzz亚洲日本少妇| 国产日韩一级二级三级| 国产999精品久久久久久| 久久久蜜桃精品| 国产成人午夜精品5599|