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

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

?? improve.cpp

?? VS2005圖像處理程序的源代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
	int px,py,c;
	int* value;                //用來保存要排序的數值
	int count;                 //用來保存采樣窗口的像素數量
	value = new int[tw*tw]; 
	k=0;
	//從采樣窗口中取得像素灰度
	for(i=0; i<tw; i++)
	{
		for(j=0; j<tw; j++)
		{
			py=y-tw/2+i;
			px=x-tw/2+j;
			//如果該像素位于采樣窗口中
			if(templt[i*tw+j]>0)
			{
				//保存像素灰度
				value[k]=imageBuf0[py][px*4+cn];
				k++;
			}
		}
	}

	count = k;

	vector<int> nums(tw*tw);
	
	for (int i = 0; i < tw*tw; i++)
		nums[i] = value[i];

	//對保存的像素灰度數據進行排序
	sort(nums.begin(), nums.end());

	//保存中值
	c=nums[count/2];
	//清理內存
	delete[] value;
	return c;
}

/******************************************************************
* 功能: 彩色圖像的中值濾波平滑處理
* 參數: image0為原圖形,image1平滑結果,
*		w、h為圖象的寬和高
*       size為進行平滑的鄰域邊長
******************************************************************/
void SmoothMedianCl(BYTE* image0, BYTE* image1, unsigned int w, unsigned int h, unsigned int size)
{
	//將圖像轉化為矩陣形式
	BYTE** imageBuf0 = CreatImage(image0, w, h);
	BYTE** imageBuf1 = CreatImage(image1, w, h);
	//設定模板
	int* templt;
	int x,y,c;
	int a;
	int scale;

	//根據鄰域大小設定模板
	templt = new int[size * size];

	for(x=0; x<size*size; x++)
	{
		templt[x]=1;
	}
	//設定衰減因子
	scale = 1;

	//依次對原圖像的每個像素進行處理
	for(y=size/2; y<h-size/2; y++)
	{
		for(x=size/2; x<w-size/2; x++)
		{
			for(c=0; c<3; c++)
			{
				//取采樣窗口中像素灰度的中值
				a=MedianValueCl(imageBuf0,w,h,templt,size,x,y,c);
				a/= scale;
				//過限處理
				a = a>255?255:a;    
				a = a<0?0:a;
				imageBuf1[y][x*4+c]=a;
			}
		}
	}
	//清理內存
	delete[] templt;
	free(imageBuf0);
	free(imageBuf1);
}


/******************************************************************
* 功能: 灰度圖像的拉普拉斯銳化處理(scale = 3)
* 參數: image0為原圖形,image1銳化結果,
*		w、h為圖象的寬和高
******************************************************************/
void SharpLaplacianAsh(BYTE* image0, BYTE* image1, unsigned int w, unsigned int h)
{
	//將圖像轉化為矩陣形式
	BYTE** imageBuf0 = CreatImage(image0, w, h);
	BYTE** imageBuf1 = CreatImage(image1, w, h);
	//設定模板
	int templt[9]={-1,-1,-1,-1,8,-1,-1,-1,-1};
	int x,y;
	int a;
	int scale;

	scale = 3;//設定衰減因子

	//依次對原圖像的每個像素進行處理
	for(y=1; y<h-1; y++)
		for(x=1; x<w-1; x++)
		{
			//利用拉普拉斯模板對鄰域進行處理
			a=TempltExcuteAsh(imageBuf0,w,h,templt,3,x,y);
			a/= scale;
			//對中心像素進行增強
			a=GetAsh(imageBuf0,x,y)+a;
			//過限處理
			a = a>255?255:a;    
			a = a<0?0:a;
			SetPixelXY(imageBuf1,x,y,a);
		}

		//清理內存
		free(imageBuf0);
		free(imageBuf1);
}

/******************************************************************
* 功能: 彩色圖像的拉普拉斯銳化處理(scale = 3)
* 參數: image0為原圖形,image1銳化結果,
*		w、h為圖象的寬和高
******************************************************************/
void SharpLaplacianCl(BYTE* image0, BYTE* image1, unsigned int w, unsigned int h)
{
	//將圖像轉化為矩陣形式
	BYTE** imageBuf0 = CreatImage(image0, w, h);
	BYTE** imageBuf1 = CreatImage(image1, w, h);
	//設定模板
	int templt[9]={-1,-1,-1,-1,8,-1,-1,-1,-1};
	int x,y,c;
	int a;
	int scale;

	//設定衰減因子
	scale = 3;

	//依次對原圖像的每個像素進行處理
	for(y=1; y<h-1; y++)
	{
		for(x=1; x<w-1; x++)
		{
			for(c=0; c<3; c++)
			{
				//利用拉普拉斯模板對鄰域進行處理
				a=TempltExcuteCl(imageBuf0,w,h,templt,3,x,y,c);
				a/= scale;
				//對中心像素進行增強
				a=imageBuf0[y][x*4+c]+a;
				//過限處理
				a = a>255?255:a;    
				a = a<0?0:a;
				imageBuf1[y][x*4+c]=a;
			}
		}
	}
	//清理內存
	free(imageBuf0);
	free(imageBuf1);
}

void SetPixel(BYTE* image1, unsigned int n, int a)
{
	image1[n] = a;
	image1[n+1] = a;
	image1[n+2] = a;
	image1[n+3] = 255;
}     


/***********************************************************************
* Sobel邊緣檢測  (scale=0.5)
* 參數: image0為原圖形,image1為邊緣檢測結果,w、h為圖像的寬和高
* 當type為true時,差分結果取水平和垂直方向差分中較大者,否則取平均值
************************************************************************/
void SideSobel(BYTE* image0, BYTE* image1, unsigned int w, unsigned int h, bool type)
{
	int x, y, a, aHr, aHg, aHb, aVr, aVg, aVb, aH, aV;
	long n;
	double scale = 0.5;
	//依次處理每個像素
	for(y = 1; y < h-1; y++)
		for(x = 1; x < w-1; x++)
		{
			//計算像素的偏移位置
			n = (y*w+x)*4;
			//計算紅色分量水平灰度差
			aHr = abs( (image0[n-w*4-4]+image0[n-4]*2+image0[n+w*4-4])
				- (image0[n-w*4+4]+image0[n+4]*2+image0[n+w*4+4]) );
			//計算紅色分量垂直灰度差
			aVr = abs( (image0[n-w*4-4]+image0[n-w*4]*2+image0[n-w*4+4])
				- (image0[n+w*4-4]+image0[n+w*4]*2+image0[n+w*4+4]) );
			//計算綠色分量水平灰度差
			aHg = abs( (image0[n-w*4-4+1]+image0[n-4+1]*2+image0[n+w*4-4+1])
				- (image0[n-w*4+4+1]+image0[n+4+1]*2+image0[n+w*4+4+1]) );
			//計算綠色分量垂直灰度差
			aVg = abs( (image0[n-w*4-4+1]+image0[n-w*4+1]*2+image0[n-w*4+4+1])
				- (image0[n+w*4-4+1]+image0[n+w*4+1]*2+image0[n+w*4+4+1]) );
			//計算藍色分量水平灰度差
			aHb = abs( (image0[n-w*4-4+2]+image0[n-4+2]*2+image0[n+w*4-4+2])
				- (image0[n-w*4+4+2]+image0[n+4+2]*2+image0[n+w*4+4+2]) );
			//計算藍色分量垂直灰度差
			aVb = abs( (image0[n-w*4-4+2]+image0[n-w*4+2]*2+image0[n-w*4+4+2])
				- (image0[n+w*4-4+2]+image0[n+w*4+2]*2+image0[n+w*4+4+2]) );

			//計算水平綜合灰度差
			aH = aHr + aHg + aHb;
			//計算垂直綜合灰度差
			aV = aVr + aVg + aVb;

			if(type)
			{
				//取水平和垂直方向差分中較大者
				if(aH > aV) a = aH;
				else a = aV;
			}
			else
			{
				//取水平和垂直方向差分的平均值
				a = (aH + aV)/2;
			}
			a = a *scale;
			a = a>255?255:a;
			//生成邊緣掃描結果
			SetPixel(image1,n,a);
		}
}

/******************************************************************
* 功能: 對圖像進行二值化處理
* 參數: image0為原圖形,image1為處理的結果圖像,
*		w、h為圖象的寬和高
*       K為閾值
******************************************************************/
void ToTwoValue(BYTE* image0, BYTE* image1, unsigned int w, unsigned int h, int K)
{
	//將圖像轉化為矩陣形式
	BYTE** imageBuf0 = CreatImage(image0, w, h);
	BYTE** imageBuf1 = CreatImage(image1, w, h);
	int x,y;

	//依次對原圖像的每個像素進行處理
	for(y=0; y<h; y++)
		for(x=0; x<w; x++)
		{
			//如果當前點已經為單點 則在結果圖中用黑色標記
			if( GetAsh(imageBuf0,x,y) >=K )
			{
				SetPixelXY (imageBuf1,x,y,255 );
			}
			//如果當前點不是單點 則在結果圖中用白色標記
			else
			{
				SetPixelXY(imageBuf1,x,y,0);
			}
		}

	//清理內存
	free(imageBuf0);
	free(imageBuf1);
}

/******************************************************************
* 功能: 對兩副圖像進行減法運算
* 參數: image0為原圖形,image1為要減去的圖像,
*		w、h為圖象的寬和高
******************************************************************/
void Subtract(BYTE* image0, BYTE* image1, unsigned int w, unsigned int h)
{
	//將圖像轉化為矩陣形式
	BYTE** imageBuf0 = CreatImage(image0, w, h);
	BYTE** imageBuf1 = CreatImage(image1, w, h);
	int x,y;
	int a;

	//依次對原圖像的每個像素進行處理
	for(y=0; y<h; y++)
		for(x=0; x<w; x++)
		{
			//取得原圖像灰度
			a=GetAsh(imageBuf0,x,y);
			//進行減法運算
			a=a-GetAsh(imageBuf1,x,y);
			//過限處理
			a = a>255?255:a;    
			a = a<0?0:a;
			SetPixelXY(imageBuf1,x,y,a);
		}

		//清理內存
		free(imageBuf0);
		free(imageBuf1);
}

/******************************************************************
* 功能: 對兩副圖像進行加法運算
* 參數: image0為原圖形,image1為要減去的圖像,
*		w、h為圖象的寬和高
******************************************************************/
void AshAdd(BYTE* image0, BYTE* image1, unsigned int w, unsigned int h)
{
	//將圖像轉化為矩陣形式
	BYTE** imageBuf0 = CreatImage(image0, w, h);
	BYTE** imageBuf1 = CreatImage(image1, w, h);
	int x,y,c;
	int a;

	//依次對原圖像的每個像素進行處理
	for(y=0; y<h; y++)
		for(x=0; x<w; x++)
		{
			//取得原圖像灰度
			a=GetAsh(imageBuf0,x,y);
			//進行減法運算
			a=a+GetAsh(imageBuf1,x,y);
			//過限處理
			a = a>255?255:a;    
			a = a<0?0:a;
			SetPixelXY(imageBuf1,x,y,a);
		}

		//清理內存
		free(imageBuf0);
		free(imageBuf1);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费av观看| 久久精品一区二区三区不卡| 国产剧情在线观看一区二区| 久久66热re国产| 久国产精品韩国三级视频| 日韩综合小视频| 久久精品国产一区二区| 久久91精品久久久久久秒播| 国产一区二区三区精品欧美日韩一区二区三区| 麻豆久久久久久| 国产精品99久久不卡二区| 成人美女视频在线观看18| 99久久99久久免费精品蜜臀| 91久久国产综合久久| 欧美日韩一级视频| 日韩精品一区二区三区在线观看| 欧美精品一区二| 国产精品免费久久| 亚洲精品国久久99热| 亚洲成人av电影在线| 蜜乳av一区二区| 国产91精品一区二区麻豆网站| av在线不卡网| 欧美久久久久中文字幕| 久久香蕉国产线看观看99| 136国产福利精品导航| 五月婷婷欧美视频| 麻豆精品在线看| 丰满白嫩尤物一区二区| 色94色欧美sute亚洲13| 欧美一级专区免费大片| 国产精品乱人伦中文| 亚洲成人www| voyeur盗摄精品| 91麻豆精品国产91久久久久久久久 | 99re这里都是精品| 7777精品伊人久久久大香线蕉完整版| 精品国产一区二区三区av性色| 国产精品久久精品日日| 免费欧美在线视频| 色伊人久久综合中文字幕| 精品三级在线看| 亚洲综合在线免费观看| 国产精品一区在线观看你懂的| 欧美又粗又大又爽| 国产精品不卡视频| 激情文学综合丁香| 欧美一区二区三区在| 亚洲精品国产无天堂网2021| 国产精品资源站在线| 制服丝袜中文字幕亚洲| 亚洲乱码国产乱码精品精的特点 | 国产美女在线观看一区| 在线一区二区三区四区五区 | 成人午夜电影久久影院| 69p69国产精品| 亚洲自拍偷拍图区| 成人伦理片在线| 久久久久久久久久久久久夜| 亚洲v精品v日韩v欧美v专区| av电影在线观看一区| 久久亚洲免费视频| 久久91精品久久久久久秒播| 欧美日韩国产中文| 亚洲综合男人的天堂| 色综合一区二区三区| 欧美韩国一区二区| 国产资源在线一区| 欧美videossexotv100| 日韩福利电影在线观看| 国产在线不卡视频| 久久综合色鬼综合色| 久久精品国产一区二区| 日韩精品一区在线观看| 久久99精品久久久久久国产越南 | 亚洲人吸女人奶水| 99久久精品情趣| 亚洲欧美乱综合| 欧美亚洲丝袜传媒另类| 天堂久久久久va久久久久| 欧美日本在线一区| 免费人成黄页网站在线一区二区| 91精品国产麻豆| 狠狠色丁香婷婷综合| 久久只精品国产| 成人一二三区视频| 亚洲啪啪综合av一区二区三区| 91免费版在线| 亚洲成人免费电影| 精品日本一线二线三线不卡| 黄色小说综合网站| 国产精品久久久久久久久免费丝袜| av电影在线观看完整版一区二区| 亚洲靠逼com| 91精品欧美一区二区三区综合在| 捆绑紧缚一区二区三区视频| 久久综合色播五月| 色婷婷久久综合| 狂野欧美性猛交blacked| 亚洲国产高清在线观看视频| 色综合久久中文综合久久97| 日韩福利视频导航| 亚洲国产精品二十页| 色呦呦国产精品| 国产在线观看一区二区| 亚洲日本在线a| 日韩欧美电影一二三| 成人午夜私人影院| 五月天一区二区| 国产日韩精品视频一区| 欧美视频精品在线观看| 国产成人精品免费网站| 艳妇臀荡乳欲伦亚洲一区| 2021久久国产精品不只是精品| 色吊一区二区三区| 国产一区二区导航在线播放| 亚洲专区一二三| 国产欧美日韩三区| 欧美一级高清片在线观看| av电影在线观看一区| 久久97超碰国产精品超碰| 亚洲一区在线播放| 国产视频在线观看一区二区三区| 精品1区2区3区| 99精品欧美一区二区三区小说| 日本欧美一区二区在线观看| 国产精品福利在线播放| 精品三级在线观看| 欧美一区二区成人| 欧美在线观看一区| 一本大道久久a久久综合| 国产成人亚洲综合a∨猫咪| 日本一不卡视频| 亚洲一区二区三区四区不卡| 中文字幕亚洲在| 国产午夜精品久久久久久久 | 一本到高清视频免费精品| 国产成人鲁色资源国产91色综| 琪琪久久久久日韩精品| 一区二区三区免费| 亚洲美女免费视频| 亚洲欧美日韩国产一区二区三区| 久久精品欧美一区二区三区不卡| 日韩午夜在线观看视频| 欧美日韩一区二区三区不卡| 91久久线看在观草草青青| 97久久超碰精品国产| 风间由美一区二区av101| 国产盗摄女厕一区二区三区| 精品在线一区二区三区| 精品一区二区三区久久| 久久精品国产亚洲a| 美女一区二区视频| 国产一区二区三区观看| 国产乱一区二区| 国产成人一区二区精品非洲| 看电影不卡的网站| 激情五月激情综合网| 国内精品国产成人国产三级粉色| 经典三级视频一区| 国产一区二区影院| 奇米精品一区二区三区四区| 久久97超碰色| 国产馆精品极品| 91在线你懂得| 色婷婷精品大视频在线蜜桃视频| 欧美性猛交xxxxxxxx| 欧美丝袜丝交足nylons| 91精品国产欧美一区二区成人| 欧美美女直播网站| 日韩一卡二卡三卡| 久久久综合精品| 亚洲日本丝袜连裤袜办公室| 亚洲一区二区综合| 青青青爽久久午夜综合久久午夜| 激情综合网最新| 国产成人精品一区二区三区四区| 高清不卡在线观看av| 91福利在线免费观看| 日韩精品一区二区三区视频播放| 欧美一二三区在线观看| 国产精品毛片a∨一区二区三区| 日韩一区日韩二区| 天天操天天综合网| 国产精品1区二区.| 在线观看中文字幕不卡| 日韩午夜电影av| 国产精品久久久一本精品 | 911国产精品| 国产日韩欧美综合一区| 一区二区激情小说| 韩国欧美国产一区| 在线免费观看日韩欧美| 日韩免费性生活视频播放| 国产精品传媒视频| 免费成人你懂的| 色香蕉成人二区免费| 精品久久久久久久久久久久久久久 | 欧美大片日本大片免费观看| 国产精品素人视频|