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

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

?? lapls.cpp

?? 用數(shù)字圖像處理主要是為了修改圖形,改善圖像質(zhì)量,或是從圖像中提起有效信息,還有利用數(shù)字圖像處理可以對圖像進行體積.
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
#include "StdAfx.h"
#include "MyInterface.h"
#include "MyInterfaceDlg.h"
#include "Picture.h"
#include <math.h>
#include ".\lapls.h"
#define WIDTHBYTES(i)  ((i+31)/32*4)
int GrayTable[256];
int MaxGrayNum;
int MinGrayNum;
WNDPROC OldProc;
LRESULT CALLBACK WindowProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);
CLapls::CLapls(void)
{
	wnd=NULL;
}

CLapls::~CLapls(void)
{
	if(wnd!=NULL)
	{
		delete wnd;
		wnd=NULL;
	}
}


HBITMAP CLapls::Go(HWND hWnd,BOOL b)//修改圖像數(shù)據(jù)每一象素的值
{	
	DWORD              OffBits,BufSize;
	LPBITMAPINFOHEADER lpImgData;
	LPSTR              lpPtr;
	HLOCAL             hTempImgData;
	LPBITMAPINFOHEADER lpTempImgData;
	LPSTR              lpTempPtr;
	HDC                hDc;
	HFILE              hf;
	LONG               x,y;
	float              coef;
	float              TempNum;	
    float Template_Log[25]={-2.0f,-4.0f,-4.0f,-4.0f,-2.0f,//拉普拉斯算子
		-4.0f,0.0f,8.0f,0.0f,-4.0f,
		-4.0f,8.0f,24.0f,8.0f,-4.0f,
		-4.0f,0.0f,8.0f,0.0f,-4.0f,
		-2.0f,-4.0f,-4.0f,-4.0f,-2.0f};	
	if(b)		
	{
		Template_Log[0]=-1.0f;
		Template_Log[1]=0.0f;
		Template_Log[2]=1.0f;
		Template_Log[3]=-2.0f;
		Template_Log[4]=0.0f;
		Template_Log[5]=2.0f;
		Template_Log[6]=-1.0f;
		Template_Log[7]=0.0f;
		Template_Log[8]=1.0f;
		Template_Log[9]=0.0f;
		Template_Log[10]=0.0f;
		Template_Log[11]=0.0f;
		Template_Log[12]=0.0f;
		Template_Log[13]=0.0f;
		Template_Log[14]=0.0f;
		Template_Log[15]=0.0f;
		Template_Log[16]=0.0f;
		Template_Log[17]=0.0f;
		Template_Log[18]=0.0f;
		Template_Log[19]=0.0f;
		Template_Log[20]=0.0f;
		Template_Log[21]=0.0f;
		Template_Log[22]=0.0f;
		Template_Log[23]=0.0f;
		Template_Log[24]=0.0f;
	}
	

	coef=(float)(1.0);

	OffBits=bf.bfOffBits-sizeof(BITMAPFILEHEADER);
	BufSize=bf.bfSize-sizeof(BITMAPFILEHEADER);

	if((hTempImgData=LocalAlloc(LHND,BufSize))==NULL)
	{
		AfxMessageBox("請輸入正確的位圖!",MB_OK|MB_ICONEXCLAMATION);
		return NULL;
	}

	lpImgData=(LPBITMAPINFOHEADER)GlobalLock(hImgData);    
	lpTempImgData=(LPBITMAPINFOHEADER)LocalLock(hTempImgData);

	lpPtr=(char *)lpImgData;
	lpTempPtr=(char *)lpTempImgData;

	memcpy(lpTempPtr,lpPtr,BufSize);
		//拉普拉斯實現(xiàn)
	for(y=2;y<bi.biHeight-2;y++)
		for(x=2;x<bi.biWidth-2;x++){//以該點為中心的5*5矩形內(nèi)的所有象素乘以算子系數(shù)之和如果大于255,則中心象素被更改255,
			//否則被賦為和的絕對值
			lpPtr=(char *)lpImgData+(BufSize-LineBytes-y*LineBytes)+x;
			lpTempPtr=(char *)lpTempImgData+(BufSize-LineBytes-y*LineBytes)+x;
			TempNum=(float)((unsigned char)*(lpPtr+2*LineBytes-2))*Template_Log[0];
			TempNum+=(float)((unsigned char)*(lpPtr+2*LineBytes-1))*Template_Log[1];
			TempNum+=(float)((unsigned char)*(lpPtr+2*LineBytes))*Template_Log[2];
			TempNum+=(float)((unsigned char)*(lpPtr+2*LineBytes+1))*Template_Log[3];
			TempNum+=(float)((unsigned char)*(lpPtr+2*LineBytes+2))*Template_Log[4];

			TempNum+=(float)((unsigned char)*(lpPtr+LineBytes-2))*Template_Log[5];
			TempNum+=(float)((unsigned char)*(lpPtr+LineBytes-1))*Template_Log[6];
			TempNum+=(float)((unsigned char)*(lpPtr+LineBytes))*Template_Log[7];
			TempNum+=(float)((unsigned char)*(lpPtr+LineBytes+1))*Template_Log[8];
			TempNum+=(float)((unsigned char)*(lpPtr+LineBytes+2))*Template_Log[9];

			TempNum+=(float)((unsigned char)*(lpPtr-2))*Template_Log[10];
			TempNum+=(float)((unsigned char)*(lpPtr-1))*Template_Log[11];
			TempNum+=(float)((unsigned char)*(lpPtr))*Template_Log[12];
			TempNum+=(float)((unsigned char)*(lpPtr+1))*Template_Log[13];
			TempNum+=(float)((unsigned char)*(lpPtr+2))*Template_Log[14];

			TempNum+=(float)((unsigned char)*(lpPtr-LineBytes-2))*Template_Log[15];
			TempNum+=(float)((unsigned char)*(lpPtr-LineBytes-1))*Template_Log[16];
			TempNum+=(float)((unsigned char)*(lpPtr-LineBytes))*Template_Log[17];
			TempNum+=(float)((unsigned char)*(lpPtr-LineBytes+1))*Template_Log[18];
			TempNum+=(float)((unsigned char)*(lpPtr-LineBytes+2))*Template_Log[19];

			TempNum+=(float)((unsigned char)*(lpPtr-2*LineBytes-2))*Template_Log[20];
			TempNum+=(float)((unsigned char)*(lpPtr-2*LineBytes-1))*Template_Log[21];
			TempNum+=(float)((unsigned char)*(lpPtr-2*LineBytes))*Template_Log[22];
			TempNum+=(float)((unsigned char)*(lpPtr-2*LineBytes+1))*Template_Log[23];
			TempNum+=(float)((unsigned char)*(lpPtr-2*LineBytes+2))*Template_Log[24];

			TempNum*=coef;
			if(TempNum>255.0) *lpTempPtr=(BYTE)255;
			else if(TempNum<0.0) 
				*lpTempPtr=(unsigned char)fabs(TempNum);
			else *lpTempPtr=(BYTE)TempNum;
		}
		HWND hLib=(HWND)::GetDlgItem(hWnd,IDC_PIC_LIB);

		hDc=::GetDC(hLib);
		if(hBitmap!=NULL)
			DeleteObject(hBitmap);

		hBitmap=CreateDIBitmap(hDc,	(LPBITMAPINFOHEADER)lpTempImgData, (LONG)CBM_INIT,
			(LPSTR)lpTempImgData+sizeof(BITMAPINFOHEADER) +NumColors*sizeof(RGBQUAD),
			(LPBITMAPINFO)lpTempImgData, DIB_RGB_COLORS);
		CPicture pic;
		pic.ShowPic(hBitmap,hWnd,IDC_PIC_LIB);

		hf=_lcreat("c:\\log.bmp",0);
		_lwrite(hf,(LPSTR)&bf,sizeof(BITMAPFILEHEADER)); 		
		_lwrite(hf,(LPSTR)lpTempImgData,BufSize);
		_lclose(hf);

		::ReleaseDC(hLib,hDc);
		LocalUnlock(hTempImgData);
		LocalFree(hTempImgData);
		GlobalUnlock(hImgData);	
		return hBitmap;
}

BOOL CLapls::Get(char* BmpFileName)//獲得一個HGLOBAL,它存儲了圖像的信息頭、調(diào)色板和圖像數(shù)據(jù)象素值。獲得一個調(diào)色板HPALETTE,
//它保存圖像調(diào)色板信息。獲得實際用到的顏色數(shù)
{
	//局部變量	
	HLOCAL hPal;
	LOGPALETTE *pPal;
	LPRGBQUAD lpRGB;
	LPBITMAPINFOHEADER lpImgData;


	//讀取位圖基本信息
	HFILE hf;
	if((hf=_lopen(BmpFileName,OF_READ))==HFILE_ERROR){
		AfxMessageBox("File not found!");		
		return FALSE;
	}
	_lread(hf,(LPSTR)&bf,sizeof(BITMAPFILEHEADER)); 
	_lread(hf,(LPSTR)&bi,sizeof(BITMAPINFOHEADER));


	//保存信息到類變量中	
	ImgWidth=bi.biWidth;
	ImgHeight=bi.biHeight;
	LineBytes=(DWORD)WIDTHBYTES(bi.biWidth*bi.biBitCount);//biBitCount指定表示顏色時一個象素所要用到的位數(shù),常用的值為1(黑白二色圖), 
//4(16色圖), 8(256色), 24(真彩色圖)(新的.bmp格式支持32位色,這里就不做討論了)
	DWORD ImgSize;
	ImgSize=(DWORD)LineBytes*bi.biHeight;
	if(bi.biClrUsed!=0)//biClrUsed指定本圖象實際用到的顏色數(shù),如果該值為零,則用到的顏色數(shù)為2^biBitCount
		NumColors=(DWORD)bi.biClrUsed;
	else
		switch(bi.biBitCount){
			case 1:
				NumColors=2;
				break;
			case 4:
				NumColors=16;
				break;
			case 8:
				NumColors=256;
				break;
			case 24:
				NumColors=0;
				break;
			case 32:
				NumColors=0;
				break;
			default:
				AfxMessageBox("請輸入正確的位圖!",MB_OK|MB_ICONEXCLAMATION);//Invalid color numbers
				_lclose(hf);
				return FALSE; 
		}

		//檢查錯誤
		if(bf.bfOffBits!=(DWORD)(NumColors*sizeof(RGBQUAD)+sizeof(BITMAPFILEHEADER)//bfOffBit為從文件頭到實際的位圖數(shù)據(jù)的偏移字節(jié)數(shù)
			+sizeof(BITMAPINFOHEADER)))
		{
			AfxMessageBox("請輸入正確的位圖!",MB_OK|MB_ICONEXCLAMATION);
			_lclose(hf);
			return FALSE; 
		}
		bf.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+NumColors*sizeof(RGBQUAD)+ImgSize;//bfSize指定文件大小

		//創(chuàng)建全局內(nèi)存對象并填充數(shù)據(jù)(bi+quad+image)
		if((hImgData=GlobalAlloc(GHND,(DWORD)(sizeof(BITMAPINFOHEADER)+
			NumColors*sizeof(RGBQUAD)+ImgSize)))==NULL)
		{
			AfxMessageBox("Error alloc memory!",MB_OK|MB_ICONEXCLAMATION);
			_lclose(hf);
			return FALSE;
		}
		lpImgData=(LPBITMAPINFOHEADER)GlobalLock(hImgData); 
		_llseek(hf,sizeof(BITMAPFILEHEADER),FILE_BEGIN);//_llseek移動文件的讀寫位置,成功返回移動后的文件讀寫位置
		_hread(hf,(char *)lpImgData,(long)sizeof(BITMAPINFOHEADER)
			+(long)NumColors*sizeof(RGBQUAD)+ImgSize);
		_lclose(hf);

//創(chuàng)建調(diào)色板
		if(NumColors!=0)
		{                    
			hPal=LocalAlloc(LHND,sizeof(LOGPALETTE) + NumColors* sizeof(PALETTEENTRY));
			pPal =(LOGPALETTE *)LocalLock(hPal);
			pPal->palNumEntries =(WORD) NumColors;
			pPal->palVersion    = 0x300;
			lpRGB = (LPRGBQUAD)((LPSTR)lpImgData + (DWORD)sizeof(BITMAPINFOHEADER));
			for (DWORD i = 0; i < NumColors; i++) {
				pPal->palPalEntry[i].peRed=lpRGB->rgbRed;
				pPal->palPalEntry[i].peGreen=lpRGB->rgbGreen;
				pPal->palPalEntry[i].peBlue=lpRGB->rgbBlue;
				pPal->palPalEntry[i].peFlags=(BYTE)0;
				lpRGB++;
			}
			hPalette=CreatePalette(pPal);
			LocalUnlock(hPal);
			LocalFree(hPal);
		}
		GlobalUnlock(hImgData);
		return TRUE;
}
HBITMAP CLapls::ColortoGrayScale(HWND hWnd)
{
	HWND hpic=::GetDlgItem(hWnd,IDC_PIC);
	DWORD SrcBufSize,DstBufSize,DstLineBytes;
	LPBITMAPINFOHEADER lpImgData;
	LPSTR                 lpPtr;
	HLOCAL               hTempImgData;
	LPBITMAPINFOHEADER lpTempImgData;
	LPSTR                 lpTempPtr;
	HDC                   hDc;
	HFILE                  hf;
	LONG                  x,y;
	BITMAPFILEHEADER    DstBf;
	BITMAPINFOHEADER    DstBi;
	LOGPALETTE           *pPal;
	HPALETTE              hPrevPalette;
	HLOCAL               hPal;
	DWORD                  NewNumColors;
	WORD                   NewBitCount;
	float                   Y;
	DWORD                i;
	unsigned char            Red,Green,Blue,Gray;
	NewNumColors=NumColors; //NewNumColors為新圖的顏色數(shù)
	NewBitCount=bi.biBitCount;  //NewBitCount為新圖的一個象素需要的位數(shù)
	if(NumColors==0) //真彩圖
	{
		NewNumColors=256;
		NewBitCount=8;
	}
	
	//由于顏色位數(shù)有可能發(fā)生了改變,所以要重新計算每行占用的字節(jié)數(shù)以及新圖
	//的緩沖區(qū)大小
	DstLineBytes=(DWORD)WIDTHBYTES(bi.biWidth*NewBitCount);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区在线看| 久久福利资源站| 91一区在线观看| 国产日韩影视精品| 国产精品一区二区三区四区| 日韩欧美二区三区| 久久不见久久见中文字幕免费| 91精品国产色综合久久不卡电影| 一区二区三区91| 色素色在线综合| 亚洲另类在线视频| 日本精品一级二级| 亚洲综合一区二区| 欧美三级欧美一级| 午夜免费久久看| 欧美丰满一区二区免费视频| 亚洲成人av福利| 欧美一级理论性理论a| 久久成人免费电影| 国产婷婷色一区二区三区在线| 国产成人av影院| 国产精品视频免费看| 成人精品一区二区三区四区| 国产精品久久看| 色噜噜夜夜夜综合网| 亚洲一区在线电影| 在线综合视频播放| 蜜臂av日日欢夜夜爽一区| 久久综合色天天久久综合图片| 国产成人精品三级| 亚洲欧美日韩成人高清在线一区| 色婷婷亚洲一区二区三区| 一区二区三区国产精华| 欧美日本一道本| 久久99热这里只有精品| 国产色婷婷亚洲99精品小说| av成人免费在线| 亚洲综合丁香婷婷六月香| 欧美裸体bbwbbwbbw| 精油按摩中文字幕久久| 欧美国产激情二区三区| 在线观看欧美日本| 日本不卡一二三| 国产亚洲污的网站| 色噜噜狠狠色综合中国 | 日韩欧美一级二级三级| 狠狠色丁香久久婷婷综| 国产精品免费看片| 欧美这里有精品| 久久av资源网| 亚洲色图.com| 91精品国产色综合久久不卡蜜臀| 国产福利一区在线观看| 亚洲精品乱码久久久久久久久 | 日韩视频一区二区在线观看| 国产福利一区二区三区视频在线 | 久久不见久久见免费视频7| 欧美激情一区二区三区全黄| 色成年激情久久综合| 蜜臀精品久久久久久蜜臀| 欧美激情一区二区三区| 欧美日韩一级视频| 国产乱妇无码大片在线观看| 亚洲另类春色国产| 欧美电影免费观看完整版| 99久久精品免费观看| 另类中文字幕网| 亚洲女人****多毛耸耸8| 日韩免费看的电影| 一本色道**综合亚洲精品蜜桃冫| 久久精品99久久久| 亚洲视频免费在线观看| 日韩欧美在线影院| 91论坛在线播放| 精品一区二区综合| 亚洲综合激情网| 欧美国产精品一区| 91精品国产色综合久久ai换脸 | 久久精品人人做人人综合| 九九视频精品免费| 亚洲综合小说图片| 久久免费精品国产久精品久久久久| 91一区二区在线观看| 麻豆久久久久久| 亚洲综合在线第一页| 国产精品网站在线播放| 91精品国产福利在线观看| 91网站最新地址| 国产精品一区二区久久精品爱涩 | 国产风韵犹存在线视精品| 日一区二区三区| 亚洲视频综合在线| 国产亚洲欧美一区在线观看| 91麻豆精品国产| 一本大道久久精品懂色aⅴ| 国产麻豆日韩欧美久久| 日韩成人免费看| 亚洲精品乱码久久久久久日本蜜臀| 国产欧美一区二区三区鸳鸯浴| 欧美一区日韩一区| 欧美三级电影网站| 91在线视频18| 成人福利在线看| 国产精品自拍一区| 久久精品国产99国产| 日韩av一区二区在线影视| 一区二区成人在线视频| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 波多野洁衣一区| 国产精品1区二区.| 久久国产乱子精品免费女| 男人的天堂久久精品| 一区二区三区精品在线观看| 亚洲欧美一区二区三区久本道91| 中文字幕国产一区| 国产午夜精品久久| 久久九九全国免费| 久久精品人人做人人综合| 亚洲精品在线电影| 欧美成人乱码一区二区三区| 日韩午夜在线影院| 欧美电影免费观看高清完整版| 91精品一区二区三区久久久久久| 欧美日韩一级黄| 欧美日韩在线亚洲一区蜜芽| 在线观看免费亚洲| 在线精品视频一区二区| 91免费精品国自产拍在线不卡| 99久久夜色精品国产网站| 成人激情黄色小说| 99久久免费视频.com| 不卡大黄网站免费看| av激情综合网| 99久久婷婷国产精品综合| 日本高清视频一区二区| 99久久婷婷国产综合精品电影| 99视频一区二区| 色老头久久综合| 在线观看av不卡| 欧美日韩国产另类一区| 欧美丰满一区二区免费视频| 777欧美精品| 欧美mv和日韩mv国产网站| 欧美精品一区二区精品网| 久久久久久久久一| 国产精品亲子伦对白| 中文字幕在线免费不卡| 国产精品女人毛片| 日韩手机在线导航| 欧美tickle裸体挠脚心vk| 精品久久久久一区二区国产| 久久久99精品久久| 国产精品无码永久免费888| 综合电影一区二区三区| 一区二区三区国产精华| 石原莉奈在线亚洲二区| 毛片基地黄久久久久久天堂| 国产美女精品在线| 91丨porny丨首页| 欧美日韩精品一区二区三区| 欧美一级二级在线观看| 国产三级欧美三级| 亚洲欧美国产三级| 婷婷综合五月天| 韩国v欧美v亚洲v日本v| 成人高清av在线| 欧美日本一区二区在线观看| 精品1区2区在线观看| 国产精品区一区二区三区| 亚洲精选一二三| 日韩av高清在线观看| 国产精品综合av一区二区国产馆| 91性感美女视频| 欧美精品色综合| 久久九九国产精品| 最好看的中文字幕久久| 日韩黄色免费电影| 岛国精品在线播放| 欧美综合一区二区| 亚洲精品一区二区三区影院| 国产精品久久久久久久久久久免费看| 亚洲午夜久久久| 国产美女精品在线| 在线观看日产精品| 久久精品人人做人人综合| 亚洲最新视频在线播放| 极品少妇一区二区| 色综合色狠狠综合色| 日韩一区二区在线观看| 国产精品夫妻自拍| 免费观看日韩电影| 色婷婷综合久久久久中文 | 欧美va亚洲va在线观看蝴蝶网| 国产精品国产自产拍高清av| 免费观看成人鲁鲁鲁鲁鲁视频| gogo大胆日本视频一区| 日韩美一区二区三区| 亚洲毛片av在线| 国产毛片精品国产一区二区三区| 欧美伊人久久久久久久久影院|