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

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

?? tuxianghechengdib.cpp

?? 圖像處理算法相關VC程序 VC++圖像處理程序設計配套光盤
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
#include "stdafx.h"
#include "windowsx.h"
#include "math.h"
#include "TuXiangHeChengDib.h"
#include "MainFrm.h"
#include "DynSplitView2.h"

 
 
TuXiangHeChengDib::TuXiangHeChengDib()
{
	bool m_valid=true;
}
TuXiangHeChengDib::~TuXiangHeChengDib()
{
}



///***************************************************************/           
/*函數名稱:Add(LPBYTE p_data, LPBYTE p_dataBK,int wide,int height)                                        
/*函數類型:void 
/*參數說明:p_data       原圖像首地址
/*          p_dataBK     背景圖像首地址
/*          wide,height 原圖像的高和寬                                   
/*功能:對圖像進行加運算。            
/***************************************************************/ 
void TuXiangHeChengDib::Add(LPBYTE p_data, LPBYTE p_dataBK,int wide,int height)
{
	LPBYTE lpSrc;  //原圖像像素指針
    LPBYTE lpDst;   //目標像素指針
    LPBYTE lpSrcBK;  //背景像素指針	
	if (m_pBitmapInfoHeader->biBitCount<9)//灰度圖像
	{
		int i,j;  //循環變量
		LPBYTE  temp=new BYTE[wide*height];    //新圖像緩沖區
		//初始化新分配的內存為255
		memset(temp,255,wide*height);			
		//進行每個像素的加運算
		for(j=1;j<height-1;j++)
		{
			for(i=1;i<wide-1;i++)
			{
				//獲得原像素指針
				lpSrc=p_data+wide*j+i;
				//獲得目標像素指針
				lpDst=temp+wide*j+i;
				//獲得背景像素指針
				lpSrcBK=p_dataBK+wide*j+i;
				//進行加運算
				if((*lpSrc+*lpSrcBK)>255)
					*lpDst=255;
				else
					*lpDst=(*lpSrc+*lpSrcBK);
			}
		}
		memcpy(p_data, temp,wide*height);   //復制處理后的圖像
		delete  temp;
	}
	else //24位真彩色
	{
		LONG 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=1;j<height-1;j++)
		{
			for(int i=3;i<DibWidth-3;i++)
			{
				//獲得原像素指針
				lpSrc=p_data+DibWidth*j+i;
				//獲得目標像素指針
				lpDst=p_temp+DibWidth*j+i;
				//獲得背景像素指針
				lpSrcBK=p_dataBK+DibWidth*j+i;
				//進行加運算
				if((*lpSrc+*lpSrcBK)>255)
					*lpDst=255;
				else
					*lpDst=(*lpSrc+*lpSrcBK);
			}
		}
		memcpy(p_data, p_temp,DibWidth*height);   //復制處理后的圖像
		delete  []p_temp;
	}	
}



///***************************************************************/           
/*函數名稱:Sub(LPBYTE p_data, LPBYTE p_dataBK,int wide,int height)                                        
/*函數類型:void 
/*參數說明:p_data       原圖像首地址
/*          p_dataBK     背景圖像首地址
/*          wide,height 原圖像的高和寬                                   
/*功能:對圖像進行減運算。            
/***************************************************************/ 
void TuXiangHeChengDib::Sub(LPBYTE p_data, LPBYTE p_dataBK, int wide, int height)
{
	LPBYTE lpSrc;  //原圖像像素指針
    LPBYTE lpDst;   //目標像素指針
    LPBYTE lpSrcBK;  //背景像素指針
    if (m_pBitmapInfoHeader->biBitCount<9)//灰度圖像
	{
		int i,j;  //循環變量
		LPBYTE  temp=new BYTE[wide*height];    //新圖像緩沖區
		//初始化新分配的內存為255
		memset(temp,255,wide*height);	
		//進行每個像素的減運算
		for(j=1;j<height-1;j++)
		{
			for(i=1;i<wide-1;i++)
			{
				//獲得原像素指針
				lpSrc=p_data+wide*j+i;
				//獲得目標像素指針
				lpDst=temp+wide*j+i;
				//獲得背景像素指針
				lpSrcBK=p_dataBK+wide*j+i;
				//進行減運算
				if((*lpSrc-*lpSrcBK)<0)
					*lpDst=0;
				else
					*lpDst=(*lpSrc-*lpSrcBK);
			}
		}
		memcpy(p_data, temp,wide*height);   //復制處理后的圖像
		delete  temp;
	}
	else//24位真彩色
	{
		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=1;j<height-1;j++)
		{
			for(int i=1;i<DibWidth-1;i++)
			{
				//獲得原像素指針
				lpSrc=p_data+DibWidth*j+i;
				//獲得目標像素指針
				lpDst=p_temp+DibWidth*j+i;
				//獲得背景像素指針
				lpSrcBK=p_dataBK+DibWidth*j+i;
				//進行減運算
				if((*lpSrc-*lpSrcBK)<0)
					*lpDst=0;
				else
					*lpDst=(*lpSrc-*lpSrcBK);
			}
		}
		memcpy(p_data, p_temp,DibWidth*height);   //復制處理后的圖像
		delete  []p_temp;
	}
}



///***************************************************************/           
/*函數名稱:Yuyunsuan(LPBYTE p_data, LPBYTE p_dataBK,int wide,int height)                                        
/*函數類型:void 
/*參數說明:p_data       原圖像首地址
/*          p_dataBK     背景圖像首地址
/*          wide,height 原圖像的高和寬                                   
/*功能:對圖像進行與運算。            
/***************************************************************/
void TuXiangHeChengDib::Yuyunsuan(LPBYTE p_data, LPBYTE p_dataBK, int wide, int height)
{
    if (m_pBitmapInfoHeader->biBitCount<9)//灰度圖像
	{
		int i,j;  //循環變量 	 
		LPBYTE  temp1=new BYTE[wide*height]; //新圖像緩沖區
		LPBYTE  temp2=new BYTE[wide*height]; 
		memset( temp1,0,wide*height);
		memset( temp2,0,wide*height);
		//對原圖二值化
		for(j=0;j<height;j++)
		{
			for(i=0;i<wide;i++)
			{
				if(p_data[wide*j+i]>128)
					temp1[wide*j+i]=1; 
			}
		}
		//對背景二值化
		for(j=0;j<height;j++)
		{
			for(i=0;i<wide;i++)
			{
				if(p_dataBK[wide*j+i]>128)
					temp2[wide*j+i]=1; 
			}
		}
		//進行每個像素的與運算
		for(j=1;j<height-1;j++)
		{
			for(i=1;i<wide-1;i++)
			{   
				if( temp2[wide*j+i]==1&& temp1[wide*j+i]==1)
					temp1[wide*j+i]=255;
				else 
					temp1[wide*j+i]=0;
			}
		}
		memcpy(p_data, temp1,wide*height);   //復制處理后的圖像
		delete  temp1;
		delete  temp2;
	}
	else//24位真彩色
	{
		int i,j;  //循環變量
		LPBYTE  p_data;     //原圖數據區指針
		int wide,height,DibWidth;    //原圖長、寬
		p_data=this->GetData ();   //取得原圖的數據區指針
		wide=this->GetWidth ();  //取得原圖的數據區寬度
		height=this->GetHeight ();   //取得原圖的數據區高度
		DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節數
		BYTE *p_temp1=new BYTE[height*DibWidth];
		BYTE *p_temp2=new BYTE[height*DibWidth];
		//對原圖二值化
		for(j=0;j<height;j++)
		{
			for(i=0;i<DibWidth;i++)
			{
				if(p_data[DibWidth*j+i]>128)
					p_temp1[DibWidth*j+i]=1; 
			}
		}
		//對背景二值化
		for(j=0;j<height;j++)
		{
			for(i=0;i<DibWidth;i++)
			{
				if(p_dataBK[DibWidth*j+i]>128)
					p_temp2[DibWidth*j+i]=1; 
			}
		}
		//進行每個像素的與運算
		for(j=1;j<height-1;j++)
		{
			for(i=1;i<DibWidth-1;i++)
			{   
				if( p_temp2[DibWidth*j+i]==1&& p_temp1[DibWidth*j+i]==1)
					p_temp1[DibWidth*j+i]=255;
				else 
					p_temp1[DibWidth*j+i]=0;
			}
		}
		memcpy(p_data, p_temp1,DibWidth*height);   //復制處理后的圖像
		delete  []p_temp1;
		delete  []p_temp2;
	}
}
///***************************************************************/           
/*函數名稱:Huoyunsuan(LPBYTE p_data, LPBYTE p_dataBK,int wide,int height)                                        
/*函數類型:void 
/*參數說明:p_data       原圖像首地址
/*          p_dataBK     背景圖像首地址
/*          wide,height 原圖像的高和寬                                   
/*功能:對圖像進行或運算。            
/***************************************************************/ 
void TuXiangHeChengDib::Huoyunsuan(LPBYTE p_data, LPBYTE p_dataBK, int wide, int height)
{
    if (m_pBitmapInfoHeader->biBitCount<9)//灰度圖像
	{
		int i,j;  //循環變量		 
		LPBYTE  temp1=new BYTE[wide*height]; //新圖像緩沖區
		LPBYTE  temp2=new BYTE[wide*height]; 
		memset(temp1,0,wide*height);
		memset(temp2,0,wide*height);
		//對原圖二值化
		for(j=0;j<height;j++)
		{
			for(i=0;i<wide;i++)
			{
				if(p_data[wide*j+i]>128)
					temp1[wide*j+i]=1; 
			}
		}
		//對背景二值化
		for(j=0;j<height;j++)
		{
			for(i=0;i<wide;i++)
			{
				if(p_dataBK[wide*j+i]>128)
					temp2[wide*j+i]=1; 
			}
		}
		//進行每個像素的與運算
		for(j=1;j<height-1;j++)
		{
			for(i=1;i<wide-1;i++)
			{   
				if( temp2[wide*j+i]==0&& temp1[wide*j+i]==0)
					temp1[wide*j+i]=0;
				else 
					temp1[wide*j+i]=255;
			}
		}
		memcpy(p_data, temp1,wide*height);   //復制處理后的圖像
		delete  temp1;
		delete  temp2;
	}
	else//24位真彩色
	{
		int i,j;  //循環變量
		LPBYTE  p_data;     //原圖數據區指針
		int wide,height,DibWidth;    //原圖長、寬
		p_data=this->GetData ();   //取得原圖的數據區指針
		wide=this->GetWidth ();  //取得原圖的數據區寬度
		height=this->GetHeight ();   //取得原圖的數據區高度
		DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節數
		BYTE *p_temp1=new BYTE[height*DibWidth];
		BYTE *p_temp2=new BYTE[height*DibWidth];
		//對原圖二值化
		for(j=0;j<height;j++)
		{
			for(i=0;i<DibWidth;i++)
			{
				if(p_data[DibWidth*j+i]>128)
					p_temp1[DibWidth*j+i]=1; 
			}
		}
		//對背景二值化
		for(j=0;j<height;j++)
		{
			for(i=0;i<DibWidth;i++)
			{
				if(p_dataBK[DibWidth*j+i]>128)
					p_temp2[DibWidth*j+i]=1; 
			}
		}
		//進行每個像素的與運算
		for(j=1;j<height-1;j++)
		{
			for(i=1;i<DibWidth-1;i++)
			{   
				if( p_temp2[DibWidth*j+i]==0&& p_temp1[DibWidth*j+i]==0)
					p_temp1[DibWidth*j+i]=0;
				else 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合天天综合色综合av | 欧美丝袜第三区| 91精品综合久久久久久| 国产亚洲欧美一级| 日韩黄色片在线观看| 成人高清在线视频| 精品免费国产一区二区三区四区| 亚洲视频免费看| 国产精品99久久久久久宅男| 91精品福利在线一区二区三区 | 精品久久一区二区三区| 洋洋成人永久网站入口| 不卡av免费在线观看| 国产亚洲精品bt天堂精选| 奇米在线7777在线精品 | 99riav久久精品riav| 欧美不卡123| 奇米777欧美一区二区| 欧美性生活影院| 日韩美女视频一区| 成人av动漫网站| 欧美高清在线一区| 国产91色综合久久免费分享| 久久青草欧美一区二区三区| 精东粉嫩av免费一区二区三区 | 欧美在线免费观看视频| 亚洲欧美日韩在线| 99国产精品久久久久久久久久久| 国产精品国产三级国产aⅴ原创| 国产91对白在线观看九色| 久久久噜噜噜久久中文字幕色伊伊| 免费高清不卡av| 欧美mv日韩mv国产| 国产成人在线色| 欧美国产精品劲爆| 91在线免费播放| 亚洲狠狠爱一区二区三区| 欧美日韩免费一区二区三区视频| 三级久久三级久久| 日韩精品一区二区三区蜜臀| 激情综合五月婷婷| 久久蜜桃av一区精品变态类天堂 | 国产精品夜夜嗨| 欧美国产综合色视频| 成人在线视频首页| 自拍偷拍亚洲综合| 欧美日韩精品久久久| 麻豆91在线观看| 中文字幕精品三区| 日本久久一区二区三区| 日韩国产在线一| 久久―日本道色综合久久| 盗摄精品av一区二区三区| 日韩理论片中文av| 91麻豆精品国产无毒不卡在线观看 | 97久久久精品综合88久久| 夜夜精品浪潮av一区二区三区| 欧美久久久久免费| 国产成人免费9x9x人网站视频| 亚洲日本护士毛茸茸| 91精品国产综合久久国产大片| 久久66热re国产| 日韩美女精品在线| 日韩视频免费直播| 97久久人人超碰| 久久超级碰视频| 一区二区三区四区激情| 日韩丝袜情趣美女图片| 成人av在线观| 日韩黄色免费电影| 日韩毛片精品高清免费| 日韩欧美国产三级电影视频| 一本一道综合狠狠老| 久久99精品网久久| 亚洲精品国产无天堂网2021| 久久综合色综合88| 欧美在线|欧美| 高清不卡在线观看av| 午夜欧美2019年伦理| 国产精品国产三级国产aⅴ无密码| 日韩一区和二区| 日本韩国精品一区二区在线观看| 极品瑜伽女神91| 亚洲电影欧美电影有声小说| 中文字幕成人在线观看| 欧美成人精品高清在线播放| 欧美日韩一区二区三区在线| 岛国一区二区在线观看| 国产一区二区在线电影| 午夜精品福利在线| 亚洲黄色免费网站| 国产精品护士白丝一区av| 久久美女艺术照精彩视频福利播放| 欧美精品乱码久久久久久| 色噜噜狠狠色综合欧洲selulu| 成人久久久精品乱码一区二区三区| 青草av.久久免费一区| 亚洲成人你懂的| 亚洲蜜臀av乱码久久精品蜜桃| 国产欧美一区二区精品婷婷 | 中文字幕亚洲电影| 久久久久88色偷偷免费| 久久综合一区二区| 精品国产精品一区二区夜夜嗨| 56国语精品自产拍在线观看| 欧美性做爰猛烈叫床潮| 在线看日韩精品电影| 91农村精品一区二区在线| 国产不卡免费视频| 国产成人高清在线| 大陆成人av片| 成人国产一区二区三区精品| 成人免费观看男女羞羞视频| 国产成人一区二区精品非洲| 国产成人av资源| 夫妻av一区二区| 色综合夜色一区| 欧美专区在线观看一区| 欧美在线你懂得| 欧美精品xxxxbbbb| 欧美一级xxx| 国产丝袜美腿一区二区三区| 国产午夜亚洲精品理论片色戒| 国产亚洲1区2区3区| 国产精品久久久久国产精品日日| 国产精品国产a| 一区二区高清在线| 日韩avvvv在线播放| 久久99久久99| aaa欧美大片| 欧美精品久久99久久在免费线| 欧美一级淫片007| 中文字幕av一区二区三区免费看 | 欧美亚洲国产bt| 91精品婷婷国产综合久久性色| 精品精品国产高清a毛片牛牛| 国产色综合久久| 亚洲一区二区在线观看视频| 日韩国产欧美在线观看| 国产在线播精品第三| 成人av电影免费观看| 欧美亚洲另类激情小说| 日韩午夜在线观看视频| 国产精品日产欧美久久久久| 亚洲一区二区三区不卡国产欧美| 性久久久久久久久久久久| 精品国产三级电影在线观看| 91精品国产综合久久婷婷香蕉| 欧美变态tickling挠脚心| 欧美国产精品一区| 三级亚洲高清视频| 国产精品99久久久久| 欧美三级电影网站| 久久精品亚洲精品国产欧美kt∨ | 欧美卡1卡2卡| 国产精品视频一二三| 亚洲成人第一页| 国模大尺度一区二区三区| 99精品黄色片免费大全| 91精品欧美一区二区三区综合在 | wwww国产精品欧美| 亚洲精品国产a| 国产精品香蕉一区二区三区| 欧美午夜精品免费| 亚洲国产精品ⅴa在线观看| 香蕉加勒比综合久久| 99久久精品99国产精品| 精品国产123| 热久久国产精品| 在线亚洲欧美专区二区| 中文字幕欧美激情| 久久狠狠亚洲综合| 91九色02白丝porn| 国产亚洲成av人在线观看导航| 日韩影视精彩在线| 91在线精品一区二区| 久久久高清一区二区三区| 奇米色777欧美一区二区| 色噜噜久久综合| 国产农村妇女精品| 久久爱www久久做| 欧美日韩精品三区| 亚洲人成网站精品片在线观看| 国产一区999| 日韩女优毛片在线| 日本va欧美va精品| 欧美日韩视频专区在线播放| 亚洲精品v日韩精品| 91原创在线视频| 国产精品福利av| 成人av免费在线观看| 国产精品麻豆一区二区| 国产69精品久久久久777| 国产日韩欧美a| 成人午夜精品一区二区三区| 国产亚洲人成网站| 成人网男人的天堂| 中文字幕亚洲综合久久菠萝蜜| 国产成人免费在线视频| 国产色产综合产在线视频|