




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)字圖像處理試驗(yàn)指導(dǎo)書任課教師 陳振學(xué)山東大學(xué)控制科學(xué)與工程學(xué)院20083實(shí)驗(yàn)一、直方圖均衡化圖像增強(qiáng)的計(jì)算機(jī)實(shí)現(xiàn)一、 實(shí)驗(yàn)?zāi)康模?)熟悉直方圖均衡化處理的理論基礎(chǔ);2)掌握直方圖均衡化處理的計(jì)算機(jī)實(shí)現(xiàn)方法;3)學(xué)習(xí)VC+ 6。0 的編程方法;4)驗(yàn)證直方圖均衡化處理理論;5)觀察直方圖均衡化處理的結(jié)果。二、 實(shí)驗(yàn)要求:1)學(xué)習(xí)VC+確6.0 編程的步驟及流程;2)錄入已給出的程序;3)編譯并改錯(cuò);4)閱讀給出的程序,并加注釋及書寫文檔;5)提交注釋后的程序及文檔;6)寫出本次實(shí)驗(yàn)的體會(huì)。直方圖均衡化處理編程指南本程序?qū)⒃贛icrosoft Visual C+6.0 開(kāi)發(fā)環(huán)境下構(gòu)建,所以,在開(kāi)
2、始之前,請(qǐng)確定您所使用的計(jì)算機(jī)已經(jīng)正確安裝了Microsoft Visual C+6.0(具體的安裝方法請(qǐng)?jiān)斠?jiàn)Microsoft Visual C+6.0 用戶手冊(cè),低于6.0 的版本是否可以運(yùn)行在此不做討論)。下面,請(qǐng)用該指南構(gòu)建一個(gè)直方圖均衡化處理的程序。一、創(chuàng)建對(duì)話框資源利用Microsoft Visual Studio 的對(duì)話框編輯器來(lái)設(shè)計(jì)對(duì)話框并創(chuàng)建對(duì)話框資源。步驟如下:1、Visual C+6.0 啟動(dòng)步驟: 安裝好Visual C+6.0; 按路徑開(kāi)始程序Microsoft Visual Studio 6.0Microsoft Visual C+ 6.0啟動(dòng)VC; 出現(xiàn)VC 界面
3、后,按路徑“File-New”進(jìn)入創(chuàng)建項(xiàng)目對(duì)話框;2、在彈出的對(duì)話框中單擊 Projects 選項(xiàng)卡,并單擊MFC AppWizard (exe),在右側(cè)的Projectname 一欄中輸入工程文件名,在此我們輸入HistDemoA(也可以輸入自己的工程文件名,但為了統(tǒng)一起見(jiàn),建議初學(xué)者輸入和本文相同的名字,以便于后面的理解),如下圖所示:圖 1完成后,單擊OK 按鈕。3、在彈出的MFC AppWizard 中,選擇Dialog based,如下圖所示,圖 2其它各項(xiàng)均接受默認(rèn)的設(shè)置。生成對(duì)話框應(yīng)用程序界面如下所示:圖 34、刪除“取消”按鈕及“TODO:在這里設(shè)置對(duì)話框”靜態(tài)文本框。右鍵單擊
4、“確定”按鈕,在彈出的菜單中選擇Properties,在彈出的按鈕屬性對(duì)話框中將“確定”按鈕的Caption改為“關(guān)閉”。5、改變對(duì)話框的大小。用鼠標(biāo)直接拖拉就可以調(diào)整這個(gè)對(duì)話框的大小。在這里,我們通過(guò)鼠標(biāo)的拖拉,將對(duì)話框的大小改為500270(為了后面能合適地顯示圖像。本程序在1024768 的分辨率下調(diào)試,如果讀者使用不同的分辨率,請(qǐng)根據(jù)具體情況做相應(yīng)的調(diào)整),這個(gè)大小將在窗口右下側(cè)的狀態(tài)欄中顯示出來(lái)。6、添加對(duì)話框控件。通過(guò)控件調(diào)色板來(lái)添加控件(如果控件調(diào)色板不可見(jiàn)的話,在工具欄上單擊右鍵,從列表中選擇Controls 即可)??梢园芽丶苯訌目丶{(diào)色板上拖拉到新的對(duì)話框中,然后放到合適
5、的位置,并且改變控件大小。在這里,我們添加兩個(gè)靜態(tài)文本框,右鍵單擊Properties,將它們的Caption 分別設(shè)置為:“原始圖像”和“直方圖均衡化處理后的圖像”。然后添加兩個(gè)按鈕,右鍵單擊Properties,在屬性設(shè)置中分別將它們的ID 設(shè)置為“IDC_OPEN”和“IDC_HIST”,Caption 分別設(shè)置為“打開(kāi)文件”和“直方圖均衡化”。將新添加的這些控件拖拉到合適的位置后,對(duì)話框界面如下所示:圖 4二、創(chuàng)建CImageWnd 類1、單擊菜單欄的Insert,選擇New Class,在彈出的對(duì)話框中,將Class type 選為GenericClass,并在Name 欄中輸入CI
6、mageWnd,然后點(diǎn)擊OK 按鈕。如下圖所示:圖 52、通過(guò)工作區(qū)的FileView 找到ImageWnd.h 文件,打開(kāi)它并將類定義部分的classCImageWnd 修改為class CImageWnd:public CWnd。3、為類CImageWnd 添加成員變量。通過(guò)工作區(qū)的ClassView,找到類CImageWnd,單擊右鍵,在彈出的菜單中選擇Add Member Variable,在彈出的對(duì)話框中輸入要添加的成員變量的類型及名字,及選擇訪問(wèn)限定語(yǔ)。在這里,我們依次加入訪問(wèn)限定語(yǔ)為public 的下列int 型變量:HCurrentPosition,HScrollMax,HSc
7、rollPosition,VCurrentPosition,VScrollMax,VScrollPosition,nWidth,nHeight,nByteWidth。然后再添加訪問(wèn)限定語(yǔ)為public,類型為BYTE 的成員變量*lpBits。完成類CimageWnd 的成員變量的添加。4、為類CimageWnd 添加成員函數(shù)。通過(guò)工作區(qū)的ClassView,找到類CImageWnd,單擊右鍵,在彈出的菜單中選擇Add Member Function,在彈出的對(duì)話框中輸入要添加的成員函數(shù)的類型及聲明,及選擇訪問(wèn)限定語(yǔ)。在此我們添加以下的成員函數(shù):訪問(wèn)限定語(yǔ)為public,類型為void 的Se
8、tImage(int cx,int cy,const void *bits),在函數(shù)的定義部分加入如下的代碼:nWidth=cx;nHeight=cy;nByteWidth=nWidth*3;if (nByteWidth%4) nByteWidth+=4-(nByteWidth%4);if (lpBits) delete lpBits;lpBits=new BYTEnByteWidth*nHeight;memcpy(lpBits,bits,nByteWidth*nHeight);if (cx>320 | cy>240) SetScroll(cx,cy);else SetScroll
9、(0,0);Invalidate();然后添加訪問(wèn)限定語(yǔ)為public,類型為void 的SetScroll(int cx,int cy),并在函數(shù)的定義部分加入如下代碼:HScrollPosition=0;HCurrentPosition=0;VScrollPosition=0;VCurrentPosition=0;SetScrollPos(SB_HORZ,0);SetScrollPos(SB_VERT,0);SCROLLINFO sinfo;sinfo.cbSize=sizeof(SCROLLINFO);sinfo.fMask=SIF_PAGE|SIF_RANGE;sinfo.nMin=0
10、;/HScrollsinfo.nMax=cx-1;sinfo.nPage=302;SetScrollInfo(SB_HORZ,&sinfo);HScrollMax=cx-302;/VScrollsinfo.nMax=cy-1;sinfo.nPage=222;SetScrollInfo(SB_VERT,&sinfo);VScrollMax=cy-222;5、為類CimageWnd 添加構(gòu)造函數(shù)和析構(gòu)函數(shù)。在構(gòu)造函數(shù)CImageWnd:CImageWnd()的定義體內(nèi)加入下面的代碼:HScrollPosition=0;HCurrentPosition=0;HScrollMax=0;
11、VScrollPosition=0;VCurrentPosition=0;VScrollMax=0;lpBits=0;在析構(gòu)函數(shù)CImageWnd:CImageWnd()的定義體內(nèi)加入下面的代碼:if (lpBits) delete lpBits;6、為類CimageWnd 添加消息映射。打開(kāi)文ImageWnd.h,并添加如下代碼:protected:/AFX_MSG(CImageWnd)afx_msg BOOL OnEraseBkgnd(CDC* pDC);afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollB
12、ar);afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);afx_msg void OnPaint();afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);/AFX_MSGDECLARE_MESSAGE_MAP()打開(kāi)文件ImageWnd.cpp,在析構(gòu)函數(shù)CImageWnd:CImageWnd()的定義后面,加入下面的代碼:BEGIN_MESSAGE_MAP(CImageWnd, CWnd)/AFX_MSG_MAP(CImageWnd)ON_WM_
13、ERASEBKGND()ON_WM_HSCROLL()ON_WM_VSCROLL()ON_WM_PAINT()ON_WM_CREATE()/AFX_MSG_MAPEND_MESSAGE_MAP()7、添加消息處理函數(shù)。打開(kāi)文件ImageWnd.cpp,加入下面的代碼:#define BACKGROUND RGB(128,128,128)BOOL CImageWnd:OnEraseBkgnd(CDC* pDC)if (!lpBits) pDC->FillSolidRect(0,0,320,240,BACKGROUND);return TRUE;void CImageWnd:OnPaint(
14、)CPaintDC dc(this); / device context for paintingif (lpBits)int x,y;x=-HScrollPosition;y=-VScrollPosition;if (nWidth<320) x=(320-nWidth)/2;if (nHeight<240) y=(240-nHeight)/2;BITMAPINFOHEADER bmi;bmi.biSize=sizeof(BITMAPINFOHEADER);bmi.biWidth=nWidth;bmi.biHeight=nHeight;bmi.biPlanes=1;bmi.biBi
15、tCount=24;bmi.biCompression=BI_RGB;bmi.biSizeImage=0;bmi.biXPelsPerMeter=0;bmi.biYPelsPerMeter=0;bmi.biClrUsed=0;bmi.biClrImportant=0;StretchDIBits(dc.m_hDC,x,y,nWidth,nHeight,0,0,nWidth,nHeight,lpBits,(BITMAPINFO *)&bmi,DIB_RGB_COLORS,SRCCOPY);void CImageWnd:OnHScroll(UINT nSBCode, UINT nPos, C
16、ScrollBar* pScrollBar)switch(nSBCode)case SB_LINEDOWN:HScrollPosition+=5;break;case SB_LINEUP:HScrollPosition-=5;break;case SB_PAGEDOWN:HScrollPosition+=302;break;case SB_PAGEUP:HScrollPosition-=302;break;case SB_THUMBPOSITION:case SB_THUMBTRACK:HScrollPosition=nPos;break;if (HScrollPosition<0) H
17、ScrollPosition=0;if (HScrollPosition>HScrollMax) HScrollPosition=HScrollMax;SetScrollPos(SB_HORZ,HScrollPosition);if (HCurrentPosition!=HScrollPosition)ScrollWindow(HCurrentPosition-HScrollPosition),0);HCurrentPosition=HScrollPosition;CWnd:OnHScroll(nSBCode, nPos, pScrollBar);void CImageWnd:OnVSc
18、roll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)switch(nSBCode)case SB_LINEDOWN:VScrollPosition+=5;break;case SB_LINEUP:VScrollPosition-=5;break;case SB_PAGEDOWN:VScrollPosition+=222;break;case SB_PAGEUP:VScrollPosition-=222;break;case SB_THUMBPOSITION:case SB_THUMBTRACK:VScrollPosition=nPos;br
19、eak;if (VScrollPosition<0) VScrollPosition=0;if (VScrollPosition>VScrollMax) VScrollPosition=VScrollMax;SetScrollPos(SB_VERT,VScrollPosition);if (VCurrentPosition!=VScrollPosition)ScrollWindow(0,(VCurrentPosition-VScrollPosition);VCurrentPosition=VScrollPosition;CWnd:OnVScroll(nSBCode, nPos, p
20、ScrollBar);int CImageWnd:OnCreate(LPCREATESTRUCT lpCreateStruct)if (CWnd:OnCreate(lpCreateStruct) = -1)return -1;return 0;三、為CHistDemoADlg 添加代碼1、找到并雙擊打開(kāi)文件HistDemoADlg.h(通過(guò)工作區(qū)的FileView),在classCHistDemoADlg : public Cdialog 前添加#include "ImageWnd.h"2、在HistDemoADlg.h 的public 部分,CHistDemoADlg(C
21、Wnd* pParent = NULL);之后加入下面的語(yǔ)句:int nWidth;int nHeight;int nLen;int nByteWidth;BYTE *lpBackup;BYTE *lpBitmap;BYTE *lpBits;CString FileName;CImageWnd source,dest;3、單擊菜單欄的View,在彈出的菜單中選擇ClassWizard,然后在彈出的對(duì)話框中選擇Message Maps 選項(xiàng)卡,在Class name 下拉列表框中選擇CHistDemoADlg,在Object IDs中選擇CHistDemoADlg,在Member functio
22、ns 中選擇雙擊OnInitDialog,(如果沒(méi)有的話,在Messages 中雙擊WM_INITDIALOG 添加), 窗口將跳轉(zhuǎn)到BOOLCHistDemoADlg:OnInitDialog()的定義部分。在“/ TODO: Add extra initialization here”后面加入下面的代碼:source.Create(0,"Source",WS_CHILD|WS_VISIBLE,CRect(40,40,360,280), this, 10000);dest.Create(0,"Destination",WS_CHILD|WS_VISIB
23、LE,CRect(400,40,720,280), this,10001);至此,編譯我們建立的程序,界面如下圖所示:(如有任何錯(cuò)誤不能正常編譯通過(guò),請(qǐng)讀者仔細(xì)檢查前面的編程步驟,按此建立過(guò)程成功編譯通過(guò)并顯示出下面的界面)圖 6單擊按鈕“打開(kāi)文件”和“直方圖均衡化”,沒(méi)有任何反映,因?yàn)槲覀冞€沒(méi)有給它們添加響應(yīng)。單擊“關(guān)閉”按鈕,對(duì)話框關(guān)閉。四、為“打開(kāi)文件”按鈕添加響應(yīng)。1、為類CHistDemoADlg 添加成員函數(shù)void LoadBitmap ( )。打開(kāi)工作區(qū)的ClassView,右鍵盤單擊類CHistDemoADlg,在彈出的菜單中選擇Add Member function,在彈出
24、的對(duì)話框中加入訪問(wèn)限定語(yǔ)為public,函數(shù)類型為void,函數(shù)聲明為L(zhǎng)oadBitmap 的成員函數(shù),點(diǎn)擊“OK”按鈕,編輯窗口將跳轉(zhuǎn)到函數(shù)void LoadBitmap ( )的定義部分。在函數(shù)void LoadBitmap ( )的定義部分的定義部分加入下面的代碼:BITMAPINFOHEADER *pInfo;pInfo=(BITMAPINFOHEADER *)(lpBitmap+sizeof(BITMAPFILEHEADER);nWidth=pInfo->biWidth;nByteWidth=nWidth*3;if (nByteWidth%4) nByteWidth+=4-(n
25、ByteWidth%4);nHeight=pInfo->biHeight;if (pInfo->biBitCount!=24)if (pInfo->biBitCount!=8)AfxMessageBox("無(wú)效位圖");delete lpBitmap;lpBitmap=0;return;unsigned int PaletteSize=1<<pInfo->biBitCount;if (pInfo->biClrUsed!=0 && pInfo->biClrUsed<PaletteSize)PaletteSi
26、ze=pInfo->biClrUsed;lpBits=lpBitmap+sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);RGBQUAD *pPalette=(RGBQUAD *)lpBits;lpBits+=sizeof(RGBQUAD)*PaletteSize;nLen=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+nByteWidth*nHeight;BYTE *lpTemp=lpBitmap;lpBitmap=new BYTEnLen;BITMAPFILEHEADER bmh;
27、BITMAPINFOHEADER bmi;bmh.bfType='B'+'M'*256;bmh.bfSize=nLen;bmh.bfReserved1=0;bmh.bfReserved2=0;bmh.bfOffBits=54;bmi.biSize=sizeof(BITMAPINFOHEADER);bmi.biWidth=nWidth;bmi.biHeight=nHeight;bmi.biPlanes=1;bmi.biBitCount=24;bmi.biCompression=BI_RGB;bmi.biSizeImage=0;bmi.biXPelsPerMeter
28、=0;bmi.biYPelsPerMeter=0;bmi.biClrUsed=0;bmi.biClrImportant=0;int nBWidth=pInfo->biWidth;if (nBWidth%4) nBWidth+=4-(nBWidth%4);memset(lpBitmap,0,nLen);memcpy(lpBitmap,&bmh,sizeof(BITMAPFILEHEADER);memcpy(lpBitmap+sizeof(BITMAPFILEHEADER),&bmi,sizeof(BITMAPINFOHEADER);BYTE*lpBits2=lpBitmap
29、+sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);int x,y,p1,p2,Palette;for(y=0;y<nHeight;y+)for(x=0;x<nWidth;x+)p1=y*nBWidth+x;p2=y*nByteWidth+x*3;if (lpBitsp1<PaletteSize) Palette=lpBitsp1;else Palette=0;lpBits2p2=pPalettePalette.rgbBlue;lpBits2p2+1=pPalettePalette.rgbGreen;lpBits2p2+2=p
30、PalettePalette.rgbRed;delete lpTemp;lpBits=lpBitmap+sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);if (lpBackup) delete lpBackup;lpBackup=new BYTEnLen;memcpy(lpBackup,lpBitmap,nLen);2、單擊菜單欄的View,在彈出的菜單中選擇ClassWizard,然后在彈出的對(duì)話框中選擇Message Maps 選項(xiàng)卡,在Class name 下拉列表框中選擇CHistDemoADlg,在ObjectIDs 中選擇IDC_
31、OPEN,在Messages 中單擊BN_CLICKED,然后再單擊ADD Function按鈕,將彈出添加成員函數(shù)的對(duì)話框,如下圖所示:圖 7接受默認(rèn)的函數(shù)名,單擊“OK”按鈕,就成功地添加了該成員函數(shù)。單擊“Edit Code”按鈕,窗口將跳轉(zhuǎn)到該成員函數(shù)的定義部分,加入下面的代碼:CFile File=0;CFileDialog dlg(TRUE,0,0,OFN_HIDEREADONLY," 位圖文件|*.bmp| 所有文件|*.*|",this);if (dlg.DoModal()=IDOK)FileName=dlg.GetPathName();if (!File.
32、Open(FileName,CFile:modeRead) return;/ TODO: add loading code hereif (lpBitmap) delete lpBitmap;nLen=File.GetLength();lpBitmap=new BYTEnLen;File.Read(lpBitmap,nLen);LoadBitmap();if (lpBitmap) source.SetImage(nWidth,nHeight,lpBits);3、在類CHistDemoADlg 的構(gòu)造函數(shù)CHistDemoADlg(CWnd* pParent /*=NULL*/)中加入下面的代碼
33、:lpBitmap=0;lpBackup=0;到此為止,我們所構(gòu)建的程序已經(jīng)能實(shí)現(xiàn)對(duì)單擊“打開(kāi)文件”按鈕的響應(yīng)。編譯程序,并打開(kāi)BMP 文件,如下圖所示:圖 8五、為“直方圖均衡化”按鈕添加響應(yīng)1、單擊菜單欄的View,在彈出的菜單中選擇ClassWizard,然后在彈出的對(duì)話框中選擇Message Maps 選項(xiàng)卡,在Class name 下拉列表框中選擇CHistDemoADlg,在ObjectIDs 中選擇IDC_HIST,在Messages 中單擊BN_CLICKED,然后再單擊ADD Function按鈕,將彈出添加成員函數(shù)的對(duì)話框,如下圖所示:圖 9接受默認(rèn)的函數(shù)名,單擊“OK”按
34、鈕,就成功地添加了該成員函數(shù)。單擊“Edit Code”按鈕,窗口將跳轉(zhuǎn)到該成員函數(shù)的定義部分,加入下面的代碼:HistogramEq();2、剛剛添加的HistogramEq()實(shí)現(xiàn)直方圖均衡化處理的算法。我們?cè)贖istDemoADlg.cpp中加入下面的代碼:#define Point(x,y) lpPoints(x)+(y)*nWidth#define Point1(x,y) lpPoints1(x)+(y)*nWidthvoid GetPoints(int nWidth,int nHeight,BYTE *lpBits,BYTE *lpPoints)int x,y,p;int nByt
35、eWidth=nWidth*3;if (nByteWidth%4) nByteWidth+=4-(nByteWidth%4);for(y=0;y<nHeight;y+)for(x=0;x<nWidth;x+)p=x*3+y*nByteWidth;lpPointsx+y*nWidth=(BYTE)(0.299*(float)lpBitsp+2+0.587*(float)lpBitsp+1+0.114*(float)lpBitsp+0.1);void PutPoints(int nWidth,int nHeight,BYTE *lpBits,BYTE *lpPoints)int nBy
36、teWidth=nWidth*3;if (nByteWidth%4) nByteWidth+=4-(nByteWidth%4);int x,y,p,p1;for(y=0;y<nHeight;y+)for(x=0;x<nWidth;x+)p=x*3+y*nByteWidth;p1=x+y*nWidth;lpBitsp=lpPointsp1;lpBitsp+1=lpPointsp1;lpBitsp+2=lpPointsp1;3、為類CHistDemoADlg 添加成員函數(shù)HistogramEq( )。打開(kāi)工作區(qū)的ClassView,右鍵盤單擊類CHistDemoADlg,在彈出的菜單中
37、選擇Add Member function,在彈出的對(duì)話框中加入訪問(wèn)限定語(yǔ)為public,函數(shù)類型為void,函數(shù)聲明為HistogramEq 的成員函數(shù),點(diǎn)擊“OK”按鈕,編輯窗口將跳轉(zhuǎn)到函數(shù)void CHistDemoADlg:HistogramEq( )的定義部分。在函數(shù)void CHistDemoADlg:HistogramEq()的定義部分加入下面的代碼:if (lpBitmap=0) return;BYTE *lpOutput=new BYTEnByteWidth*nHeight;HistogramEq1(nWidth,nHeight,lpBits,lpOutput);dest.S
38、etImage(nWidth,nHeight,lpOutput);delete lpOutput;NoColor();4、為類CHistDemoADlg 添加成員函數(shù)HistogramEq1(int nWidth,int nHeight,BYTE*lpInput,BYTE *lpOutput)。打開(kāi)工作區(qū)的ClassView,右鍵盤單擊類CHistDemoADlg,在彈出的菜單中選擇Add Member function,在彈出的對(duì)話框中加入訪問(wèn)限定語(yǔ)為public,函數(shù)類型為void,函數(shù)聲明為HistogramEq1(int nWidth,int nHeight,BYTE*lpInput,BYT
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒吧燈光安裝協(xié)議書
- 門窗公司入股協(xié)議書
- 茶樓包間訂購(gòu)協(xié)議書
- 計(jì)算機(jī)二級(jí)Python開(kāi)發(fā)流程標(biāo)準(zhǔn)化試題及答案
- 長(zhǎng)期動(dòng)物救助協(xié)議書
- 現(xiàn)代漢語(yǔ)文化認(rèn)同探討試題及答案
- 計(jì)算機(jī)二級(jí)MySQL考試復(fù)習(xí)資料更新及試題及答案
- 計(jì)算機(jī)二級(jí)考試技術(shù)解析與Python試題及答案
- 護(hù)士醫(yī)院考試試題及答案
- 國(guó)家計(jì)算機(jī)考試題目及答案
- DBJ04-T 241-2024 公共建筑節(jié)能設(shè)計(jì)標(biāo)準(zhǔn)
- 汽車維修廠安全生產(chǎn)
- 【數(shù)學(xué)】圖形的軸對(duì)稱 問(wèn)題解決策略:轉(zhuǎn)化課件+2024-2025學(xué)年北師大版數(shù)學(xué)七年級(jí)下冊(cè)
- 湖北省十堰市2023-2024學(xué)年高一下學(xué)期6月期末調(diào)研考試歷史試卷 含解析
- 鐵路運(yùn)輸安全風(fēng)險(xiǎn)防范-洞察分析
- 三年級(jí) 語(yǔ)文 下冊(cè)《火燒云》課件 (第1課時(shí))
- 2025年臨床醫(yī)師定期考核必考復(fù)習(xí)題庫(kù)及答案(1080題)
- 二零二五年度老舊小區(qū)改造房屋聯(lián)建合作協(xié)議3篇
- 計(jì)算機(jī)輔助制造(CAM)技術(shù)實(shí)踐考核試卷
- 創(chuàng)新創(chuàng)業(yè)創(chuàng)造:職場(chǎng)競(jìng)爭(zhēng)力密鑰知到智慧樹章節(jié)測(cè)試課后答案2024年秋上海對(duì)外經(jīng)貿(mào)大學(xué)
- 四等水準(zhǔn)測(cè)量技術(shù)總結(jié)
評(píng)論
0/150
提交評(píng)論