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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fushiyupengzhangdib.cpp

?? VC++圖像處理程序設(shè)計課本和代碼.
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
#include "stdafx.h"
#include "windowsx.h"
#include "math.h"
#include "FuShiYuPengZhangDib.h"
#include "MainFrm.h"


 
 
FuShiYuPengZhangDib::FuShiYuPengZhangDib()
{
}
FuShiYuPengZhangDib::~FuShiYuPengZhangDib()
{
}


 

///***************************************************************/           
/*函數(shù)名稱:ChuiZhiFuShi()                                        
/*函數(shù)類型:void                                      
/*功能:對圖像進行垂直腐蝕。            
/***************************************************************/ 
void FuShiYuPengZhangDib::ChuiZhiFuShi()
{
	LPBYTE p_data;	// 指向DIB象素指針
	LPBYTE	lpSrc;// 指向源圖像的指針
	LPBYTE	lpDst;// 指向緩存圖像的指針
	LPBYTE	temp;// 指向緩存DIB圖像的指針
	int i;
	int j;
	int n;//循環(huán)變量
	p_data = GetData();// 找到DIB圖像象素起始位置
	LONG wide = GetWidth();// DIB的寬度
	LONG height = GetHeight();// DIB的高度
	if (m_pBitmapInfoHeader->biBitCount<9)//灰度圖像
	{ 	
		temp = new BYTE[wide*height];// 暫時分配內(nèi)存,以保存新圖像
		lpDst = (LPBYTE)temp;
		memset(lpDst, (BYTE)255, wide * height);// 初始化新分配的內(nèi)存,設(shè)定初始值為255
		//使用垂直方向的結(jié)構(gòu)元素進行腐蝕
		for(j = 1; j < height - 1; j++)
		{
			for(i = 0; i < wide; i ++)
			{
				//由于使用3×1的結(jié)構(gòu)元素,為防止越界,所以不處理最上邊和最下邊的兩列像素
				// 指向源圖像倒數(shù)第j行,第i個象素的指針			
				lpSrc = (unsigned char *)(p_data + wide * j + i);
				lpDst = (unsigned char *)(temp + wide * j + i);	// 指向目標圖像倒數(shù)第j行,第i個象素的指針
				*lpDst = 0;//目標圖像中的當(dāng)前點先賦成黑色
				// 如果源圖像中(0,-1)、(0,0)、(0,1)三個點之一有白點,
				// 則將目標圖像中的(0,0)點賦成白色
				for (n = 0; n < 3; n++)
				{
					if (*(lpSrc + (n - 1) * wide) > 128)
					{
						*lpDst = 255;					 
						break;
					}
				}				
			}
		}
		// 復(fù)制腐蝕后的圖像
		memcpy(p_data, temp, wide * height);
		// 釋放內(nèi)存
		delete temp; 
	}
	else //24位真彩色
	{
		LONG DibWidth;    //原圖長、寬	     
		DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節(jié)數(shù)
		BYTE *p_temp=new BYTE[height*DibWidth];
		//使用垂直方向的結(jié)構(gòu)元素進行腐蝕
		for(j = 1; j < height - 1; j++)
		{
			for(i = 0; i < DibWidth; i+=3)
			{
				//由于使用3×1的結(jié)構(gòu)元素,為防止越界,所以不處理最上邊和最下邊的兩列像素
				// 指向源圖像倒數(shù)第j行,第i個象素的指針			
				lpSrc = (unsigned char *)(p_data + DibWidth * j + i);
				lpDst = (unsigned char *)(p_temp + DibWidth * j + i);	// 指向目標圖像倒數(shù)第j行,第i個象素的指針
				
				*lpDst = 0;//目標圖像中的當(dāng)前點先賦成黑色
				*(lpDst+1)=0;
				*(lpDst+2)=0;
				// 如果源圖像中(0,-1)、(0,0)、(0,1)三個點之一有白點,
				// 則將目標圖像中的(0,0)點賦成白色
				for(int m=0;m<3;m++)
				{
					for (n = 0; n < 3; n++)
					{
						if (*(lpSrc + (n - 1) * DibWidth) > 128)
						{
							*lpDst = 255;
							break;
						}
						else
							*lpDst =*lpSrc ;
					}
					lpSrc++;
					lpDst++;
				}			
			}
		}
		// 復(fù)制腐蝕后的圖像
		memcpy(p_data, p_temp, DibWidth * height); 
		// 釋放內(nèi)存
		delete []p_temp;
	}	
}



///***************************************************************/           
/*函數(shù)名稱:Shuipingfushi()                                        
/*函數(shù)類型:void                                      
/*功能:對圖像進行水平腐蝕。            
/***************************************************************/ 
void FuShiYuPengZhangDib::Shuipingfushi()
{
	// 指向DIB象素指針
	LPBYTE p_data;
	// 指向源圖像的指針
	LPBYTE	lpSrc;
	// 指向緩存圖像的指針
	LPBYTE	lpDst;
	// 指向緩存DIB圖像的指針	 
	LPBYTE	temp;
	//循環(huán)變量
	int i;
	int j;
	int n;
	// 找到DIB圖像象素起始位置
	p_data = GetData();
	// DIB的寬度
	LONG wide = GetWidth();
	// DIB的高度
	LONG height = GetHeight();
	if (m_pBitmapInfoHeader->biBitCount<9)//灰度圖像
	{    
		// 暫時分配內(nèi)存,以保存新圖像
		temp = new BYTE[wide*height];
		// 初始化新分配的內(nèi)存,設(shè)定初始值為255
		lpDst = (LPBYTE)temp;
		memset(lpDst, (BYTE)255, wide * height);
		// 使用水平方向的結(jié)構(gòu)元素進行腐蝕
		for (j = 0; j < height; j++)
		{
			for (i = 1; i < wide - 1; i ++)
			{
				// 由于使用1×3的結(jié)構(gòu)元素,為防止越界,所以不處理最左邊和最右邊的兩列像素
				lpSrc = (unsigned char *)(p_data + wide *j + i);
				// 指向目標圖像倒數(shù)第j行,第i個象素的指針			
				lpDst = (unsigned char *)(temp + wide * j + i);
				// 目標圖像中的當(dāng)前點先賦成黑色
				*lpDst = 0;
				// 如果源圖像中(-1,0)、(0,0)、(1,0)三個點之一有白點,
				// 則將目標圖像中的(0,0)點賦成白色
				for (n = 0; n < 3; n++)
				{
					if (*(lpSrc + (n - 1) ) > 128)
					{
						*lpDst = 255;
						break;
					}
				}				
			}
		}
		// 復(fù)制腐蝕后的圖像
		memcpy(p_data, temp, wide * height); 
		// 釋放內(nèi)存
		delete temp; 
	}
	else //24位真彩色
	{
		LONG DibWidth;    //原圖長、寬	     
		DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節(jié)數(shù)
		BYTE *p_temp=new BYTE[height*DibWidth];
		// 使用水平方向的結(jié)構(gòu)元素進行腐蝕
		for (j = 0; j < height; j++)
		{
			for (i = 3; i < DibWidth - 3; i +=3)
			{
				// 由于使用1×3的結(jié)構(gòu)元素,為防止越界,所以不處理最左邊和最右邊的兩列像素
				lpSrc = (unsigned char *)(p_data + DibWidth *j + i);
				// 指向目標圖像倒數(shù)第j行,第i個象素的指針			
				lpDst = (unsigned char *)(p_temp + DibWidth * j + i);
				// 目標圖像中的當(dāng)前點先賦成黑色
				*lpDst = 0;
				*(lpDst+1)=0;
				*(lpDst+2)=0;
				// 如果源圖像中(-1,0)、(0,0)、(1,0)三個點之一有白點,
				// 則將目標圖像中的(0,0)點賦成白色
				for(int m=0;m<3;m++)
				{
					for (n = 0; n < 3; n++)
					{
						if (*(lpSrc + (n - 1)*3 ) > 128)
						{
							*lpDst = 255;
							break;
						}
						else 
							*lpDst =*lpSrc;
					}
					lpSrc++;
					lpDst++;
				}
			}
		}
		// 復(fù)制腐蝕后的圖像
		memcpy(p_data, p_temp, DibWidth * height); 
		// 釋放內(nèi)存
		delete []p_temp; 
	}	
}



///***************************************************************/           
/*函數(shù)名稱:Quanfangxiangfushi()                                        
/*函數(shù)類型:void                                      
/*功能:對圖像進行全方向腐蝕。            
/***************************************************************/
void FuShiYuPengZhangDib::Quanfangxiangfushi()
{
	// 指向DIB象素指針
	LPBYTE p_data;
	// 指向源圖像的指針
	LPBYTE	lpSrc;
	// 指向緩存圖像的指針
	LPBYTE	lpDst;
    // 指向緩存DIB圖像的指針
	LPBYTE	temp;
	//循環(huán)變量
	int i;
	int j;
	int  m;
	int n;
	// 找到DIB圖像象素起始位置
	p_data = GetData();
	// DIB的寬度
	LONG wide= GetWidth();
	// DIB的高度
	LONG height =GetHeight();
    if (m_pBitmapInfoHeader->biBitCount<9)//灰度圖像
	{  	
		// 暫時分配內(nèi)存,以保存新圖像
		temp =new BYTE[wide*height];
		// 初始化新分配的內(nèi)存,設(shè)定初始值為255
		lpDst = (LPBYTE)temp;
		memset(lpDst, (BYTE)255, wide * height);
		// 3×3的結(jié)構(gòu)元素
		int B[9] = {1, 0, 1,
			        0, 0, 0,
			        1, 0, 1};
		// 使用全方向的結(jié)構(gòu)元素進行腐蝕
		for (j = 1; j < height - 1; j++)
		{
			for (i = 1; i < wide - 1; i++)
			{
				// 由于使用3×3的結(jié)構(gòu)元素,為防止越界,所以不處理最左、右、上、下四邊的像素
				// 指向源圖像倒數(shù)第j行,第i個象素的指針			
				lpSrc = (unsigned char *)(p_data + wide * j + i);
				// 指向目標圖像倒數(shù)第j行,第i個象素的指針			
				lpDst = (unsigned char *)(temp + wide * j + i);
				// 目標圖像中的當(dāng)前點先賦成黑色
				*lpDst = 0; 
				// 如果源圖像中3×3結(jié)構(gòu)元素對應(yīng)位置有白點	
				// 則將目標圖像中的(0,0)點賦成白色
				for (m = 0; m < 3; m++)
				{
					for (n = 0; n < 3; n++)
					{
						if (B[m + n] == 1)
							continue;
						
						if (*(lpSrc + (1 - m) * wide +(n - 1) ) > 128)
						{
							*lpDst = 255;
							break;
						}
					}
				}				
			}
		}
		// 復(fù)制腐蝕后的圖像
		memcpy(p_data, temp, wide * height);
		// 釋放內(nèi)存
		delete temp;
	}
	else //24位真彩色
	{
		LONG DibWidth;    //原圖長、寬	     
		DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節(jié)數(shù)
		BYTE *p_temp=new BYTE[height*DibWidth];
		// 3×3的結(jié)構(gòu)元素
		int B[9] = {1, 0, 1,
		        	0, 0, 0,
		        	1, 0, 1};
		// 使用全方向的結(jié)構(gòu)元素進行腐蝕
		for (j = 1; j < height - 1; j++)
		{
			for (i = 3; i < DibWidth - 3; i+=3)
			{
				// 由于使用3×3的結(jié)構(gòu)元素,為防止越界,所以不處理最左、右、上、下四邊的像素
				// 指向源圖像倒數(shù)第j行,第i個象素的指針			
				lpSrc = (unsigned char *)(p_data + DibWidth * j + i);
				// 指向目標圖像倒數(shù)第j行,第i個象素的指針			
				lpDst = (unsigned char *)(p_temp + DibWidth * j + i);
				// 目標圖像中的當(dāng)前點先賦成黑色
				*lpDst = 0;
				*(lpDst+1)=0;
				*(lpDst+2)=0;
				// 如果源圖像中3×3結(jié)構(gòu)元素對應(yīng)位置有白點	
				// 則將目標圖像中的(0,0)點賦成白色
				for(int l=0;l<3;l++)
				{
					for (m = 0; m < 3; m++)
					{
						for (n = 0; n < 3; n++)
						{
							if (B[m + n] == 1)
								continue;
							if (*(lpSrc + (1 - m) * DibWidth +(n - 1)*3 ) > 128)
							{
								*lpDst = 255;
								break;
							}
							else 
								*lpDst = *lpSrc;
						}
					}
					*lpSrc++;
					*lpDst++;
				}
			}
		}
		// 復(fù)制腐蝕后的圖像
		memcpy(p_data, p_temp, DibWidth * height);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美欧美欧美欧美| 精品欧美一区二区久久| 天堂久久一区二区三区| 欧美精品一区二区在线观看| 久久久久久久精| 成人午夜私人影院| 国产精品99久久久久| 精品一区二区三区免费播放 | 91影院在线观看| 国产寡妇亲子伦一区二区| 国产黄色91视频| 成人app下载| 欧美伊人久久久久久久久影院 | 日韩精品专区在线影院重磅| 欧美一级在线免费| 欧美va亚洲va在线观看蝴蝶网| 精品国产乱码久久久久久蜜臀| 欧美va亚洲va| 国产精品护士白丝一区av| 综合电影一区二区三区| 一区二区三区四区五区视频在线观看| 亚洲一区二区三区免费视频| 日本免费新一区视频| 国产一区二区三区蝌蚪| av男人天堂一区| 欧美日韩视频不卡| 久久综合给合久久狠狠狠97色69| 国产精品久久看| 性做久久久久久免费观看| 久久99热这里只有精品| 成人黄色小视频| 3d成人h动漫网站入口| 亚洲精品一区二区三区四区高清| 最新久久zyz资源站| 亚洲成人福利片| 国产美女精品在线| 欧美日韩午夜在线视频| 久久久91精品国产一区二区三区| 一区二区三区在线视频观看| 另类小说视频一区二区| 一本色道久久综合精品竹菊 | 美女脱光内衣内裤视频久久网站| 国产精品一区二区久久精品爱涩| 色噜噜偷拍精品综合在线| 欧美tickling挠脚心丨vk| **网站欧美大片在线观看| 国内精品不卡在线| 在线看一区二区| 国产精品热久久久久夜色精品三区| 亚洲成人激情综合网| 成人激情电影免费在线观看| 欧美电视剧免费观看| 一区二区三区在线不卡| 波多野结衣欧美| 国产三级精品在线| 青青草精品视频| 欧美性欧美巨大黑白大战| 国产精品毛片久久久久久| 久久精品国产亚洲高清剧情介绍| 色先锋资源久久综合| 国产精品久久久久影视| 国产精品一区久久久久| 欧美一区二区三区啪啪| 亚洲成人tv网| 欧美三级在线视频| 亚洲综合久久久久| 91极品美女在线| 亚洲欧美日韩国产中文在线| 成人a免费在线看| 中文字幕在线不卡国产视频| 国产精品一区久久久久| 久久久久99精品国产片| 国产乱一区二区| 久久这里只有精品6| 激情亚洲综合在线| 欧美精品一区二区三区蜜臀| 国产乱人伦精品一区二区在线观看| 欧美v国产在线一区二区三区| 久久国产尿小便嘘嘘| 日韩欧美亚洲一区二区| 久久国产精品露脸对白| 精品福利一区二区三区免费视频| 久久99深爱久久99精品| 久久久夜色精品亚洲| 国产福利精品一区| 1000部国产精品成人观看| 日本国产一区二区| 五月婷婷另类国产| 日韩欧美在线一区二区三区| 狠狠色狠狠色综合日日91app| 久久久久久久久久久黄色| 高清不卡一区二区在线| 中文幕一区二区三区久久蜜桃| av男人天堂一区| 日韩中文欧美在线| 久久伊人中文字幕| 99久久免费精品高清特色大片| 一区二区三区欧美视频| 91精品欧美福利在线观看| 激情久久久久久久久久久久久久久久| 久久精品亚洲国产奇米99| 99re8在线精品视频免费播放| 亚洲在线成人精品| 欧美va亚洲va香蕉在线| 91在线视频18| 日韩av一二三| 国产精品毛片久久久久久| 精品视频一区二区不卡| 国产主播一区二区| 亚洲精品成人精品456| 欧美大片国产精品| 91污在线观看| 激情小说欧美图片| 亚洲午夜久久久久中文字幕久| 精品久久久久香蕉网| 91香蕉视频污| 国产传媒久久文化传媒| 亚洲一区免费观看| 欧美激情综合在线| 日韩视频在线你懂得| 91蜜桃婷婷狠狠久久综合9色| 美腿丝袜亚洲综合| 艳妇臀荡乳欲伦亚洲一区| 久久老女人爱爱| 欧美剧情电影在线观看完整版免费励志电影| 麻豆freexxxx性91精品| 一区二区三区小说| 中文字幕一区二区三区乱码在线| 日韩欧美一区中文| 欧美乱妇23p| 色老头久久综合| 成人精品免费网站| 国产精品亚洲成人| 免费在线观看日韩欧美| 亚洲国产美女搞黄色| 自拍偷自拍亚洲精品播放| 久久精品一区二区| 日韩午夜激情免费电影| 在线电影院国产精品| 欧美亚洲一区二区三区四区| av成人免费在线| 成人精品小蝌蚪| av高清久久久| 91在线视频免费91| 97久久超碰国产精品电影| 丁香五精品蜜臀久久久久99网站| 国产在线看一区| 国产精品一二三区在线| 激情成人午夜视频| 国内精品视频一区二区三区八戒 | 成人免费av在线| 成人晚上爱看视频| 成人午夜免费电影| 成人妖精视频yjsp地址| 成人午夜激情片| 色综合天天综合| 在线观看国产精品网站| 欧美在线一二三四区| 精品视频资源站| 日韩三区在线观看| 久久久精品黄色| 欧美国产精品一区二区三区| 国产精品蜜臀在线观看| 亚洲欧美国产三级| 亚洲国产欧美一区二区三区丁香婷| 亚洲成精国产精品女| 日韩av电影天堂| 国产精品456| 91在线视频在线| 欧美一区二区精品在线| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美国产综合色视频| 亚洲精选免费视频| 美女视频黄免费的久久| 国产精品资源站在线| 91视频在线看| 日韩一区二区影院| 国产拍欧美日韩视频二区| 亚洲老妇xxxxxx| 久久精品国产精品亚洲综合| 国产不卡在线一区| 欧美色精品天天在线观看视频| 精品国产91久久久久久久妲己| 国产精品福利av| 日本欧美在线观看| 成人黄色av电影| 欧美一二三区精品| 国产精品久久夜| 蜜桃视频在线观看一区| av资源站一区| 精品av久久707| 夜夜爽夜夜爽精品视频| 国内精品国产三级国产a久久| 在线免费观看成人短视频| 久久嫩草精品久久久久| 亚洲永久免费av| 粉嫩绯色av一区二区在线观看| 欧美精品 日韩| 亚洲欧洲99久久| 国产在线国偷精品免费看|