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

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

?? makecolordib.cpp

?? 圖像處理算法相關VC程序 VC++圖像處理程序設計配套光盤
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
// MakeColorDib.cpp: implementation of the MakeColorDib class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "DSplit.h"
#include "MakeColorDib.h"
#include "MainFrm.h"
#include "math.h"
#define BOUND(x,a,b) (((x) < (a)) ? (a) : (((x) > (b)) ? (b) : (x)))
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

MakeColorDib::MakeColorDib()
{

}

MakeColorDib::~MakeColorDib()
{

}

/***************************************************************/
/*函數名稱:MakegGray()                                        */
/*函數類型:void                                               */
/*功能:真彩色轉化成256色灰度圖像。                            */
/***************************************************************/
void MakeColorDib::MakegGray()    //灰度變化
{
	BYTE *p_data;     //原圖數據區指針
	int wide,height,DibWidth;    //原圖長、寬、字節寬
	p_data=this->GetData ();   //取得原圖的數據區指針
    wide=this->GetWidth ();   //取得原圖的數據區寬度
    height=this->GetHeight ();   //取得原圖的數據區高度
	DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節數
	for(int j=0;j<height;j++)	// 每行
		for(int i=0;i<DibWidth;i+=3)	// 每列
		{
			BYTE* pbyBlue = p_data++;   //得到藍色值
			BYTE* pbyGreen = p_data++;  //得到綠色值
			BYTE* pbyRed = p_data++;    //得到紅色值
			BYTE r = *pbyRed;
			BYTE g = *pbyGreen;
			BYTE b = *pbyBlue;
			//取到原r,g,b中的最大值作為像素三分量值的新值
			int gray=0;
			if(r>g)
				gray=r;
			else 
				gray=g;
			if(gray<b)
				gray=b;			
       		*pbyBlue = gray;     //將取到的最大值賦給像素的藍分量
			*pbyGreen = gray;    //將取到的最大值賦給像素的綠分量
			*pbyRed = gray;	     //將取到的最大值賦給像素的紅分量
		}
}

/***************************************************************/
/*函數名稱:LightAlter(int m_Light)                            */
/*函數類型:void                                               */
/*參數:int m_Light,用戶給定的閾值                            */
/*功能:對圖像使用閾值法進行亮度調整。                         */
/***************************************************************/
void MakeColorDib::LightAlter(int m_Light)    //亮度調整
{
	BYTE *p_data;     //原圖數據區指針
	int wide,height,DibWidth;    //原圖長、寬、字節寬
	p_data=this->GetData ();   //取得原圖的數據區指針
    wide=this->GetWidth ();  //取得原圖的數據區寬度
    height=this->GetHeight ();    //取得原圖的數據區高度
	DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節數
	for(int j=0;j<height;j++)	// 每行
	for(int i=0;i<DibWidth;i++)	// 每列
	{   
		int a=0;
		a=int(*p_data*m_Light/100);   //調整當前點的亮度
		*p_data=a;
		//判斷范圍,取得合理的值
		if(a<0) 
			*p_data=0;  
	    if(a>255)
			*p_data=255;
        p_data++;   //指向下一指針
	}
}

/***************************************************************/
/*函數名稱:LightReverse()                                     */
/*函數類型:void                                               */
/*功能:圖像的亮度取反。                                       */
/***************************************************************/
void MakeColorDib::LightReverse()    //亮度取反
{
	BYTE *p_data;     //原圖數據區指針
	int wide,height,DibWidth;    //原圖長、寬、字節寬
	p_data=this->GetData ();   //取得原圖的數據區指針
    wide=this->GetWidth ();  //取得原圖的數據區寬度
    height=this->GetHeight ();   //取得原圖的數據區高度
	DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節數
	for(int j=0;j<height;j++)	// 每行
		for(int i=0;i<DibWidth;i++)	// 每列
		{
			int a=*p_data;   //取得當前點的值
			*p_data=255-a;    //取反
			p_data++;  //指向下一指針  
		}
}

/***************************************************************/
/*函數名稱:ContrastAlter(int m_Increment)                     */
/*函數類型:void                                               */
/*參數:int m_Increment,用戶給定的閾值                        */
/*功能:對圖像使用閾值法調整對比度處理。                       */
/***************************************************************/
void MakeColorDib::ContrastAlter(int m_Increment)   ///對比度處理
{
	int nHigh = 255 - m_Increment;
	//對于極端情況加以處理
	if(nHigh < m_Increment)
	{
		nHigh = 127;
		m_Increment = 120;
	}
	if(m_Increment < -127)
		m_Increment = -120;
	//擴展或壓縮區間的長度
	int nStretch = 255;
	if(m_Increment >= 0)
		nStretch = 255 - 2 * m_Increment;
	else
		nStretch = 255 + 2 * m_Increment;
	BYTE *p_data;     //原圖數據區指針
	int wide,height,DibWidth;    //原圖長、寬、字節寬
	p_data=this->GetData ();   //取得原圖的數據區指針
    wide=this->GetWidth ();  //取得原圖的數據區寬度
    height=this->GetHeight ();   //取得原圖的數據區高度
	DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節數
	if(m_Increment >= 0)   // m_Increment>=0時
	{
		for(int j=0;j<height;j++)	// 每行
			for(int i=0;i<DibWidth-3;i+=3)	// 每列
			{   
				//取得當前點(藍色)的值,調整
				BYTE* pbyBlue = p_data++;    
				if(*pbyBlue<=m_Increment)
					*pbyBlue=0;
				else if(*pbyBlue>nHigh)
					*pbyBlue=255;
				else
					*pbyBlue=(BYTE)((((int)*pbyBlue - m_Increment) * 255) / nStretch );
				//取得當前點(綠色)的值,調整
				BYTE* pbyGreen = p_data++;
				if(*pbyGreen<=m_Increment)
					*pbyGreen=0;
				else if(*pbyGreen>nHigh)
					*pbyGreen=255;
				else
					*pbyGreen=(BYTE)((((int)*pbyGreen - m_Increment) * 255) / nStretch );
				//取得當前點(紅色)的值,調整
				BYTE* pbyRed = p_data++;
				if(*pbyRed<=m_Increment)
					*pbyRed=0;
				else if(*pbyRed>nHigh)
					*pbyRed=255;
				else
					*pbyRed=(BYTE)((((int)*pbyRed - m_Increment) * 255) / nStretch );
			}
			
	}
	else  // m_Increment < 0 時
	{
		for(int j=0;j<height;j++)
			for(int i=0;i<DibWidth-3;i+=3)
			{	//取得當前點(藍色)的值,調整
				BYTE* pbyBlue = p_data++;
				*pbyBlue = (BYTE)((((int)(*pbyBlue) * nStretch) / 255) - m_Increment);
				//取得當前點(紅色)的值,調整
				BYTE* pbyGreen = p_data++;
				*pbyGreen = (BYTE)((((int)(*pbyGreen) * nStretch) / 255) - m_Increment);
				//取得當前點(紅色)的值,調整
				BYTE* pbyRed = p_data++;
				*pbyRed = (BYTE)((((int)(*pbyRed) * nStretch) / 255) - m_Increment);				
			}
	}
}

/***************************************************************/
/*函數名稱:Exposal()                                          */
/*函數類型:void                                               */
/*功能:圖像曝光處理。                                         */
/***************************************************************/
void MakeColorDib::Exposal() //曝光處理
{
	BYTE *p_data;     //原圖數據區指針
	int wide,height,DibWidth;    //原圖長、寬、字節寬
	p_data=this->GetData ();   //取得原圖的數據區指針
    wide=this->GetWidth ();  //取得原圖的數據區寬度
    height=this->GetHeight ();   //取得原圖的數據區高度
	DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節數
	for(int j=0;j<height;j++)	// 每行
		for(int i=0;i<DibWidth;i++)	// 每列
		{
			BYTE* pbydata = p_data++;  //取得當前點的值
			BYTE a=*pbydata;   //傳給臨時變量
			*pbydata=(a>128)?a:(255-a);   //調整
		}
		
}

/***************************************************************/
/*函數名稱:PaintColor(int m_Red,int m_Green,int m_Blue)       */
/*函數類型:void                                               */
/*參數:int m_Red、m_Green、m_Blue,用戶給定的紅綠藍值         */
/*功能:對圖像使用閾值法進行著色處理。                         */
/***************************************************************/
void MakeColorDib::PaintColor(int m_Red,int m_Green,int m_Blue) //著色處理
{
	BYTE *p_data;     //原圖數據區指針
	int wide,height,DibWidth;    //原圖長、寬、字節寬
	p_data=this->GetData ();   //取得原圖的數據區指針
    wide=this->GetWidth ();  //取得原圖的數據區寬度
    height=this->GetHeight ();   //取得原圖的數據區高度
	DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節數
	for(int j=0;j<height;j++)	// 每行
		for(int i=0;i<DibWidth;i+=3)	// 每列
		{			
			BYTE* pbyBlue = p_data++;	//取得當前點(藍色)的值					
			BYTE* pbyGreen = p_data++;  //取得當前點(綠色)的值
			BYTE* pbyRed = p_data++;    //取得當前點(紅色)的值
			BYTE r = *pbyRed;
			BYTE g = *pbyGreen;
			BYTE b = *pbyBlue;
    		BYTE gray=(BYTE)(((WORD)r * 59 + (WORD)g * 30 + (WORD)b * 11) / 100);
			*pbyBlue = (BYTE)((m_Blue * gray) / 255);  
			*pbyGreen = (BYTE)((m_Green * gray) / 255);
			*pbyRed = (BYTE)((m_Red * gray) / 255);
		}
}

/***************************************************************/
/*函數名稱:NeonLight()                                        */
/*函數類型:void                                               */
/*功能:使圖像產生霓虹處理效果。                               */
/***************************************************************/
void MakeColorDib::NeonLight()   //霓虹處理
{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品初高中害羞小美女文| 亚洲欧美日韩在线播放| 国产成人午夜视频| 亚洲国产日日夜夜| 欧美精品久久一区二区三区| 国产资源精品在线观看| 一区二区三区四区五区视频在线观看| 欧美日韩夫妻久久| 91麻豆产精品久久久久久 | 中文字幕国产一区二区| 久久99精品国产.久久久久久| 中文字幕一区二区三区不卡| 精品嫩草影院久久| 欧美日韩精品三区| 一本一道波多野结衣一区二区| 国产美女av一区二区三区| √…a在线天堂一区| 2019国产精品| 7777精品伊人久久久大香线蕉的| 91视频.com| 99久久精品99国产精品| 成人一级片网址| 久久99精品国产91久久来源| 亚洲福中文字幕伊人影院| 亚洲私人影院在线观看| 国产精品第五页| 国产精品女人毛片| 欧美高清一级片在线观看| 国产欧美日韩精品在线| 精品99999| 国产日韩高清在线| 不卡的av在线播放| 国产精品69毛片高清亚洲| 日本欧美在线看| 亚洲精品视频在线| 欧美xxxxx裸体时装秀| 精品免费日韩av| 久久影视一区二区| 久久精品一区二区三区不卡牛牛| 亚洲精品一区二区三区在线观看 | 在线中文字幕一区| av午夜精品一区二区三区| 国产精品中文有码| 国产在线麻豆精品观看| 国产.精品.日韩.另类.中文.在线.播放| 国产精品亚洲综合一区在线观看| 粉嫩aⅴ一区二区三区四区| 成人av先锋影音| 欧美亚一区二区| 欧美中文一区二区三区| 欧美刺激脚交jootjob| 国产亚洲欧洲997久久综合| 综合久久国产九一剧情麻豆| 亚洲午夜激情网站| 美女网站色91| 成人国产视频在线观看| 欧美视频在线不卡| 精品乱人伦小说| 国产精品久久久久影院亚瑟| 亚洲一区二区三区在线看| 亚洲欧美另类在线| 奇米影视在线99精品| 成人av网站免费| 在线电影一区二区三区| 久久久久久久久久电影| 一区二区三区在线免费观看| 老司机午夜精品| av在线不卡网| 日韩视频在线永久播放| 亚洲欧洲日韩女同| 国产欧美一区二区三区网站| 中文字幕av资源一区| 久久日韩粉嫩一区二区三区 | 精品国产免费久久| 亚洲综合一区二区| 国产在线精品国自产拍免费| 日本高清不卡视频| 欧美国产97人人爽人人喊| 日韩电影免费在线| 色综合网站在线| 日韩欧美成人午夜| 亚洲最新视频在线观看| 成人精品国产免费网站| 日韩欧美www| 午夜国产不卡在线观看视频| 91在线国产观看| 国产欧美日韩另类一区| 秋霞影院一区二区| 欧美日韩国产123区| 亚洲乱码精品一二三四区日韩在线| 日本不卡视频在线观看| 欧美无砖专区一中文字| 亚洲免费看黄网站| 91蜜桃传媒精品久久久一区二区| 久久久www免费人成精品| 激情欧美一区二区三区在线观看| 91麻豆精品国产91久久久久| 欧美精选午夜久久久乱码6080| 久久综合中文字幕| 激情图片小说一区| 26uuu亚洲| 丁香婷婷综合激情五月色| 26uuu久久天堂性欧美| 久久精品国产色蜜蜜麻豆| 在线观看一区日韩| 亚洲综合在线视频| 免费看欧美美女黄的网站| 欧美日韩一区精品| 日韩视频在线观看一区二区| 久久精品国产澳门| 欧美精品一区二区三区久久久| 秋霞成人午夜伦在线观看| 不卡一区二区中文字幕| 亚洲蜜臀av乱码久久精品蜜桃| 色综合欧美在线| 午夜精品久久久久影视| 欧美一区二区三区不卡| 男男视频亚洲欧美| 91高清视频在线| 亚洲免费观看在线观看| 91美女在线看| 五月天久久比比资源色| 欧美绝品在线观看成人午夜影视| 日本视频中文字幕一区二区三区| 欧美成人乱码一区二区三区| 久久99久久99| 国产精品全国免费观看高清| 99久久精品国产导航| 精品国产免费人成在线观看| 国产宾馆实践打屁股91| 日本一区二区三区在线观看| 91在线视频播放| 日韩1区2区3区| 国产欧美日韩在线观看| 91老师国产黑色丝袜在线| 日韩国产精品大片| 国产农村妇女毛片精品久久麻豆 | 久久先锋影音av鲁色资源网| 懂色中文一区二区在线播放| 久久久久久久久97黄色工厂| 色先锋资源久久综合| 免费高清在线视频一区·| 国产欧美精品一区二区色综合| 91麻豆视频网站| 成人av综合一区| 成人激情黄色小说| 国产99精品视频| 成人免费精品视频| 国产91丝袜在线18| 国产精品一色哟哟哟| 国产自产v一区二区三区c| 美女久久久精品| 五月婷婷色综合| 日韩av电影天堂| 蜜臀av性久久久久蜜臀aⅴ四虎| 五月婷婷另类国产| 亚洲国产成人av| 三级久久三级久久久| 日韩av高清在线观看| 蜜桃一区二区三区四区| 日韩高清一区在线| 麻豆成人免费电影| 理论电影国产精品| 国产一区二区精品久久99| 国产精品资源在线观看| thepron国产精品| 色丁香久综合在线久综合在线观看| 9l国产精品久久久久麻豆| 色伊人久久综合中文字幕| 成人禁用看黄a在线| 国产91露脸合集magnet| 91麻豆swag| 欧美三级资源在线| 91精品欧美一区二区三区综合在 | 欧美一区二区高清| 正在播放亚洲一区| 久久久九九九九| 国产精品国产自产拍高清av王其 | 国产欧美日本一区二区三区| 综合久久久久久| 麻豆精品视频在线观看视频| 天天综合网天天综合色| 国产精品自拍av| 欧美日韩中文一区| 久久精品免费在线观看| 一区二区久久久久| 国产乱码精品一区二区三| 色综合久久久网| 91精品国产一区二区三区| 日韩精品一区二区三区中文不卡| 欧美一三区三区四区免费在线看| 欧美日韩成人在线| 国产精品福利一区| 亚洲精品欧美激情| 亚洲女同女同女同女同女同69| 久久福利资源站| 国产一区不卡在线| 欧美视频一区二区三区四区| 欧美日韩电影一区| 欧美一区二区三区啪啪|