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

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

?? improve.cpp

?? VS2005圖像處理程序的源代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
#include "StdAfx.h"
#include "improve.h"
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

#pragma warning ( disable : 4018)

int GetAsh(BYTE** imageBuf, int x, int y)
{
	int clr;
	clr = (imageBuf[y][x*4] + imageBuf[y][x*4+1]
			+imageBuf[y][x*4+2]) / 3;
	return clr;
}

/********************************************************
* 把線形存儲(chǔ)的像素轉(zhuǎn)化為二維數(shù)組形式
* 參數(shù): image 線形存儲(chǔ)的像素, width,height 圖象的長(zhǎng)寬
********************************************************/
BYTE** CreatImage(BYTE* image, unsigned int width, unsigned int height, int bt=4)
{
	BYTE** imageBuf = (BYTE**)malloc(sizeof(BYTE*)*(height));
	for(int y=0; y<height; y++)
	{
		//使imageBuf中每個(gè)指針分別指向其下標(biāo)表示的行的行首地址
		imageBuf[y] = image+y*width*bt; 
	}
	return imageBuf;
}

/**************************************************
* 功能: 設(shè)定指定位置的像素灰度
* 參數(shù): imageBuf為目標(biāo)圖像 x,y為要設(shè)定像素的坐標(biāo)
**************************************************/
void SetPixelXY(BYTE** imageBuf1, int x, int y, int a)
{
	imageBuf1[y][x*4] = a;
	imageBuf1[y][x*4+1] = a;
	imageBuf1[y][x*4+2] = a;
	imageBuf1[y][x*4+3]= 255;
}

/**************************************************
* 功能: 使用模板對(duì)彩色圖鄰域進(jìn)行運(yùn)算
* 參數(shù): imageBuf為目標(biāo)圖像 w、h為圖像大小
*       templt為模板 tw為鄰域大小 
*		x,y為要取得像素的坐標(biāo)
*       cn為顏色分量編號(hào) 0為藍(lán)色 1為綠色 2為紅色
**************************************************/
int TempltExcuteCl(BYTE** imageBuf0, int w, int h, int* templt, int tw, int x, int y, int cn)
{
	int i,j;                        //循環(huán)變量
	int m=0;                      //用來存放加權(quán)和
	int px,py;   
	//依次對(duì)鄰域中每個(gè)像素進(jìn)行運(yùn)算
	for(i=0; i<tw; i++)
	{
		for(j=0; j<tw; j++)
		{
			//計(jì)算對(duì)應(yīng)模板上位置的像素在原圖像中的位置
			py=y-tw/2+i;
			px=x-tw/2+j;
			//加權(quán)求和
			m+=imageBuf0[py][px*4+cn] * templt[i*tw+j];
		}
	}
	return m;                     //返回結(jié)果
}

/*****************************************************************
* 功能: 使用模板對(duì)灰度圖鄰域進(jìn)行運(yùn)算 
* 參數(shù): imageBuf為目標(biāo)圖像 w、h為圖像大小
*       templt為模板 tw為鄰域大小 
*		x,y為要取得像素的坐標(biāo)
******************************************************************/
int TempltExcuteAsh(BYTE** imageBuf0, int w, int h, 
					int* templt, int tw, int x, int y)
{
	int i,j;                        //循環(huán)變量
	int m=0;                      //用來存放加權(quán)和
	int px,py;   
	//依次對(duì)鄰域中每個(gè)像素進(jìn)行運(yùn)算
	for(i=0; i<tw; i++)
	{
		for(j=0; j<tw; j++)
		{
			//計(jì)算對(duì)應(yīng)模板上位置的像素在原圖像中的位置
			py=y-tw/2+i;
			px=x-tw/2+j;
			//加權(quán)求和
			m+=GetAsh(imageBuf0,px,py) * templt[i*tw+j];
		}
	}
	return m;                     //返回結(jié)果
}

/******************************************************************
* 功能: 灰度圖像的簡(jiǎn)單平滑處理
* 參數(shù): image0為原圖形,image1為平滑結(jié)果,
*		w、h為圖象的寬和高
*       size為進(jìn)行平滑的鄰域邊長(zhǎng)
******************************************************************/
void SmoothAsh(BYTE* image0, BYTE* image1, 
			   unsigned int w, unsigned int h, unsigned int size)
{
	//將圖像轉(zhuǎn)化為矩陣形式
	BYTE** imageBuf0 = CreatImage(image0, w, h);
	BYTE** imageBuf1 = CreatImage(image1, w, h);
	//定義模板
	int* templt;
	int x,y;
	int a;
	int scale;

	//根據(jù)鄰域大小設(shè)定模板
	templt = new int[size * size];
	for(x=0; x<size*size; x++)
	{
		templt[x]=1;
	}
	//設(shè)定衰減因子
	scale = size*size;

	//依次對(duì)原圖像的每個(gè)像素進(jìn)行處理
	for(y=size/2; y<h-size/2; y++)
	{
		for(x=size/2; x<w-size/2; x++)
		{
			a=TempltExcuteAsh(imageBuf0,w,h,templt,size,x,y);
			a/= scale;
			//過限處理
			a = a>255?255:a;    
			a = a<0?0:a;
			SetPixelXY(imageBuf1,x,y,a);
		}
	}

	//清理內(nèi)存
	delete[] templt;
	free(imageBuf0);
	free(imageBuf1);
}

/******************************************************************
* 功能: 彩色圖像的簡(jiǎn)單平滑處理
* 參數(shù): image0為原圖形,image1平滑結(jié)果,
*		w、h為圖象的寬和高
*       size為進(jìn)行平滑的鄰域邊長(zhǎng)
******************************************************************/
void SmoothCl(BYTE* image0, BYTE* image1, 
			  unsigned int w, unsigned int h, unsigned int size)
{
	//將圖像轉(zhuǎn)化為矩陣形式
	BYTE** imageBuf0 = CreatImage(image0, w, h);
	BYTE** imageBuf1 = CreatImage(image1, w, h);
	//定義模板
	int* templt;
	int x,y,c;
	int a;
	int scale;

	//根據(jù)鄰域大小設(shè)定模板
	templt = new int[size * size];
	for(x=0; x<size*size; x++)
	{
		templt[x]=1;
	}
	//設(shè)定衰減因子
	scale = size*size;

	//依次對(duì)原圖像的每個(gè)像素進(jìn)行處理
	for(y=size/2; y<h-size/2; y++)
	{
		for(x=size/2; x<w-size/2; x++)
		{
			//依次對(duì)彩色圖像的三個(gè)分量灰度進(jìn)行處理
			for(c=0; c<3; c++)
			{
				a=TempltExcuteCl(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;
			}
		}
	}

	//清理內(nèi)存
	delete[] templt;
	free(imageBuf0);
	free(imageBuf1);
}

/******************************************************************
* 功能: 彩色圖像的高斯平滑處理
* 參數(shù): image0為原圖形,image1平滑結(jié)果,
*		w、h為圖像的寬和高
******************************************************************/
void SmoothGaussCl(BYTE* image0, BYTE* image1, unsigned int w, unsigned int h)
{
	//將圖像轉(zhuǎn)化為矩陣形式
	BYTE** imageBuf0 = CreatImage(image0, w, h);
	BYTE** imageBuf1 = CreatImage(image1, w, h);
	//設(shè)定模板
	int templt[9]={1,2,1,2,4,2,1,2,1};
	int x,y,c;
	int a;
	int scale;

	//設(shè)定衰減因子
	scale = 16;

	//依次對(duì)原圖像的每個(gè)像素進(jìn)行處理
	for(y=1; y<h-1; y++)
		for(x=1; x<w-1; x++)
			for(c=0; c<3; c++)
			{
				//利用高斯模板對(duì)鄰域進(jìn)行處理
				a=TempltExcuteCl(imageBuf0,w,h,templt,3,x,y,c);
				a/= scale;
				//過限處理
				a = a>255?255:a;    
				a = a<0?0:a;
				imageBuf1[y][x*4+c]=a;
			}

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

/**************************************************
* 功能: 使用模板對(duì)灰度圖鄰域排序取中值
* 參數(shù): imageBuf為目標(biāo)圖像 w、h為圖像大小
*       templt為模板 tw為鄰域大小 
*		x,y為當(dāng)前采樣窗口中心像素的坐標(biāo)
**************************************************/
int MedianValueAsh(BYTE** imageBuf0, int w, int h, int* templt, int tw, int x, int y)
{
	int i,j,k;                   
	int px,py,c;
	int* value;                //用來保存要排序的數(shù)值
	int count;                 //用來保存采樣窗口的像素?cái)?shù)量
	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]=GetAsh(imageBuf0,px,py);
				k++;
			}
		}
	}
	//記錄保存的像素個(gè)數(shù)
	count=k;
	//對(duì)保存的像素灰度數(shù)據(jù)進(jìn)行排序
	for(i=0; i<count-1; i++)
	{
		k=i;
		for(j=i+1; j<count; j++)
			if(value[j]<value[k]) k=j;
		c=value[i];
		value[i]=value[k];
		value[k]=c;
	}
	//保存中值
	c=value[count/2];
	//清理內(nèi)存
	delete[] value;
	return c;
}

/******************************************************************
* 功能: 灰度圖像的中值濾波平滑處理
* 參數(shù): image0為原圖形,image1平滑結(jié)果,
*		w、h為圖象的寬和高
*       size為進(jìn)行平滑的鄰域邊長(zhǎng)
******************************************************************/
void SmoothMedianAsh(BYTE* image0, BYTE* image1, unsigned int w, unsigned int h, unsigned int size)
{
	//將圖像轉(zhuǎn)化為矩陣形式
	BYTE** imageBuf0 = CreatImage(image0, w, h);
	BYTE** imageBuf1 = CreatImage(image1, w, h);
	//設(shè)定模板
	int* templt;
	int x,y;
	int a;
	int scale;

	//根據(jù)鄰域大小設(shè)定模板
	templt = new int[size * size];
	for(x=0; x<size*size; x++) templt[x]=1;

	//設(shè)定衰減因子
	scale = 1;

	//依次對(duì)原圖像的每個(gè)像素進(jìn)行處理
	for(y=size/2; y<h-size/2; y++)
		for(x=size/2; x<w-size/2; x++)
		{
			//取采樣窗口中像素灰度的中值
			a=MedianValueAsh(imageBuf0,w,h,templt,size,x,y);
			a/= scale;
			//過限處理
			a = a>255?255:a;    
			a = a<0?0:a;
			SetPixelXY(imageBuf1,x,y,a);
		}

		//清理內(nèi)存
		delete[] templt;
		free(imageBuf0);
		free(imageBuf1);
}

/**************************************************
* 功能: 使用模板對(duì)彩色圖鄰域排序取中值
* 參數(shù): imageBuf為目標(biāo)圖像 w、h為圖像大小
*       templt為模板 tw為鄰域大小 
*		x,y為當(dāng)前采樣窗口中心像素的坐標(biāo)
*       cn為顏色分量編號(hào) 0為藍(lán)色 1為綠色 2為紅色
**************************************************/
int MedianValueCl(BYTE** imageBuf0, int w, int h, int* templt, int tw, int x, int y, int cn)
{
	int i,j,k;                   

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲综合色| 亚洲免费观看高清完整版在线| 国产a区久久久| 亚洲成人在线免费| 欧美经典一区二区三区| 51精品视频一区二区三区| 东方aⅴ免费观看久久av| 蜜臀国产一区二区三区在线播放| 中文字幕一区av| 精品国产3级a| 69p69国产精品| 欧美性感一区二区三区| 成年人网站91| 国产成人综合在线| 久久成人麻豆午夜电影| 亚洲国产cao| 一区二区在线电影| 国产精品天天摸av网| 2021国产精品久久精品| 884aa四虎影成人精品一区| 91精品办公室少妇高潮对白| 盗摄精品av一区二区三区| 国产一区二区影院| 视频一区二区三区在线| 亚洲成a人片在线观看中文| 亚洲美女屁股眼交3| 国产精品天干天干在观线| 久久久99精品免费观看不卡| 精品国产乱码久久久久久浪潮| 欧美午夜在线观看| 91成人在线免费观看| www.日韩精品| caoporm超碰国产精品| 国产白丝精品91爽爽久久| 国产伦精一区二区三区| 国内精品伊人久久久久av一坑| 日本不卡在线视频| 蜜桃av一区二区| 免费成人结看片| 久久99久国产精品黄毛片色诱| 三级一区在线视频先锋 | 蜜臀a∨国产成人精品| 亚洲一区在线视频观看| 亚洲国产人成综合网站| 五月天激情综合网| 蜜臀国产一区二区三区在线播放 | 国产一区二区三区在线观看精品| 美女网站色91| 国产一区二区三区视频在线播放| 理论片日本一区| 国产美女在线观看一区| 国产盗摄精品一区二区三区在线| 国产不卡视频一区| 91在线视频官网| 91视频一区二区三区| 在线精品观看国产| 欧美一区二区在线不卡| 欧美www视频| 国产精品久久一卡二卡| 一区二区三区四区乱视频| 亚洲二区在线观看| 麻豆成人久久精品二区三区小说| 国产乱码一区二区三区| av不卡免费电影| 欧美麻豆精品久久久久久| 欧美成人高清电影在线| 国产精品电影一区二区三区| 亚洲电影第三页| 国产一区二区三区久久久| 99精品视频一区| 欧美巨大另类极品videosbest | 欧美无砖专区一中文字| 欧美一区二区观看视频| 国产喂奶挤奶一区二区三区| 亚洲精品久久久蜜桃| 青青国产91久久久久久| 成人精品亚洲人成在线| 欧美日韩中文另类| 国产亚洲一区二区三区| 亚洲国产成人av| 成人免费高清视频在线观看| 欧美亚洲精品一区| 久久精品视频一区二区三区| 一个色妞综合视频在线观看| 精品亚洲成a人| 欧美综合亚洲图片综合区| 欧美精品一区二区三区蜜桃| 亚洲美女少妇撒尿| 国产一区二区剧情av在线| 在线观看视频一区二区 | 久久久三级国产网站| 亚洲男同性视频| 国产专区欧美精品| 欧美日精品一区视频| 国产精品久久久久永久免费观看 | 91视频91自| 欧美变态tickling挠脚心| 亚洲男人电影天堂| 国产毛片一区二区| 欧美剧情电影在线观看完整版免费励志电影 | 欧美日韩成人一区二区| 国产精品久久三| 久久国产成人午夜av影院| 欧美日韩中文一区| 亚洲精品欧美专区| 粉嫩aⅴ一区二区三区四区五区| 欧美日韩国产高清一区二区| 国产精品天天看| 国产精品香蕉一区二区三区| 欧美老肥妇做.爰bbww视频| 一色屋精品亚洲香蕉网站| 国产高清精品久久久久| 日韩视频一区二区三区在线播放| 亚洲黄色小说网站| 成人激情av网| 久久亚洲捆绑美女| 奇米一区二区三区| 欧美美女bb生活片| 亚洲综合在线电影| 99久久综合精品| 日本一区二区高清| 国产一区二区三区免费在线观看| 日韩欧美成人激情| 蜜桃视频一区二区三区在线观看| 欧美日韩激情一区| 亚洲国产精品人人做人人爽| 色婷婷精品久久二区二区蜜臂av | 久久精品国产免费| 欧美猛男超大videosgay| 亚洲一区在线观看网站| 色哟哟一区二区在线观看| 国产精品久久久久国产精品日日 | 337p亚洲精品色噜噜噜| 亚洲高清视频中文字幕| 欧美日韩不卡一区| 五月综合激情网| 欧美精品粉嫩高潮一区二区| 五月天精品一区二区三区| 这里只有精品视频在线观看| 天堂va蜜桃一区二区三区漫画版 | 亚洲美女少妇撒尿| 在线精品视频免费播放| 亚洲大片免费看| 欧美老年两性高潮| 久久国内精品自在自线400部| 日韩欧美国产综合在线一区二区三区 | 91视频观看免费| 亚洲欧美激情视频在线观看一区二区三区| 成人精品视频一区| 亚洲欧洲性图库| 欧美影院一区二区| 五月婷婷色综合| 欧美大白屁股肥臀xxxxxx| 国产自产2019最新不卡| 国产精品无人区| 欧美亚一区二区| 日韩黄色一级片| 久久久久久久av麻豆果冻| www.66久久| 亚洲第一福利视频在线| 日韩欧美成人一区| 成a人片国产精品| 亚洲bdsm女犯bdsm网站| 欧美xxxxx牲另类人与| 国产大陆亚洲精品国产| 樱花草国产18久久久久| 欧美一区二区精品| 成人免费毛片片v| 日韩中文字幕不卡| 国产亚洲一区字幕| 欧美视频你懂的| 精品一二三四区| 亚洲精品高清在线| 亚洲精品一区在线观看| 91国模大尺度私拍在线视频| 热久久国产精品| 国产精品黄色在线观看| 欧美日韩大陆一区二区| 成人一级视频在线观看| 偷窥国产亚洲免费视频 | 日本一区中文字幕| 亚洲国产精品v| 欧美精选在线播放| fc2成人免费人成在线观看播放| 亚洲第一福利一区| 国产精品美女久久久久久久| 欧美日本高清视频在线观看| 国产成人在线观看免费网站| 91亚洲精品乱码久久久久久蜜桃| 五月天网站亚洲| 一区精品在线播放| 精品国产91乱码一区二区三区 | 亚洲女子a中天字幕| 欧美精品一区二区三区在线播放 | 奇米777欧美一区二区| 成人欧美一区二区三区视频网页 | 亚洲精品v日韩精品| 精品久久久久久亚洲综合网| 91精品福利视频| 成人爱爱电影网址|