



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)學(xué)形態(tài)學(xué)處理程序?qū)嵗? JEFFView.cpp : implementation of the CJEFFView class/#include "stdafx.h"#include "JEFF.h"#include "JEFFDoc.h"#include "JEFFView.h"#define Out(x,y) lpPoints(x)+(y)*nWidth#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FIL
2、E_;#endif/ CJEFFViewIMPLEMENT_DYNCREATE(CJEFFView, CScrollView)BEGIN_MESSAGE_MAP(CJEFFView, CScrollView)/AFX_MSG_MAP(CJEFFView)ON_COMMAND(ID_EROSION, OnErosion)ON_COMMAND(ID_DILATION, OnDilation)ON_COMMAND(ID_OPEN, OnOpen)ON_COMMAND(ID_CLOSE, OnClose)ON_COMMAND(ID_ZAOSHENG, OnZaosheng)ON_COMMAND(ID_
3、BIANYUAN, OnBianyuan)ON_COMMAND(ID_1, On1)ON_COMMAND(ID_2, On2)ON_COMMAND(ID_4, On4)ON_COMMAND(ID_8, On8)ON_COMMAND(ID_DILATION2, OnDilation2)ON_COMMAND(ID_EROSION2, OnErosion2)ON_COMMAND(ID_OPEN2, OnOpen2)ON_COMMAND(ID_CLOSE2, OnClose2)ON_COMMAND(ID_SMOOTH, OnSmooth)ON_COMMAND(ID_RELOAD, OnReload)O
4、N_COMMAND(ID_TIDU, OnTidu)ON_COMMAND(ID_BIANYUAN_H, OnBianyuanH)ON_COMMAND(ID_QUSE, OnQuse)ON_WM_LBUTTONDOWN()/AFX_MSG_MAP/ Standard printing commandsON_COMMAND(ID_FILE_PRINT, CScrollView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollVi
5、ew:OnFilePrintPreview)END_MESSAGE_MAP()/ CJEFFView construction/destructionCJEFFView:CJEFFView()/ TODO: add construction code here ValidDoc=FALSE;m_i=1;CJEFFView:CJEFFView()BOOL CJEFFView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: Modify the Window class or styles here by modifying/ the CREATESTRU
6、CT csreturn CScrollView:PreCreateWindow(cs);/ CJEFFView drawingvoid CJEFFView:OnDraw(CDC* pDC)CJEFFDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data here if (pDoc->lpBitmap)ValidDoc=TRUE;nWidth=pDoc->nWidth;nHeight=pDoc->nHeight;lpBits=pDoc->lpBits;lpPoin
7、ts=pDoc->lpPoints;BITMAPINFOHEADER bmi;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=0;bmi.biYPelsPerMeter=0;bmi.biClrUsed=0;bmi.biClrImportant=0;StretchDIBits(pDC->m_h
8、DC,0,0,nWidth*m_i,nHeight*m_i,0,0,nWidth,nHeight, lpBits,(BITMAPINFO *)&bmi,DIB_RGB_COLORS,SRCCOPY);void CJEFFView:OnInitialUpdate()CScrollView:OnInitialUpdate();CSize sizeTotal;/ TODO: calculate the total size of this view sizeTotal.cx =2000; sizeTotal.cy = 1700; SetScrollSizes(MM_TEXT, sizeTot
9、al);/ CJEFFView printingBOOL CJEFFView:OnPreparePrinting(CPrintInfo* pInfo)/ default preparationreturn DoPreparePrinting(pInfo);void CJEFFView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add extra initialization before printingvoid CJEFFView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*
10、pInfo*/)/ TODO: add cleanup after printing/ CJEFFView diagnostics#ifdef _DEBUGvoid CJEFFView:AssertValid() constCScrollView:AssertValid();void CJEFFView:Dump(CDumpContext& dc) constCScrollView:Dump(dc);CJEFFDoc* CJEFFView:GetDocument() / non-debug version is inline ASSERT(m_pDocument->IsKindO
11、f(RUNTIME_CLASS(CJEFFDoc); return (CJEFFDoc*)m_pDocument;#endif /_DEBUG/ CJEFFView message handlers/ 二值形態(tài)學(xué) : 腐蝕void CJEFFView:OnErosion()int *lpMarks=new intnWidth*nHeight;int x,y,x1,y1;int count;/中間變量for(y=1;y<nHeight-1;y+)for(x=1;x<nWidth-1;x+)count=1;for(y1=-1;y1<2;y1+)for(x1=-1;x1<2;
12、x1+)if (Out(x+x1,y+y1)/以(x,y)為中心的九個點是否有白色的像素點count=0;/如果有count=0,否則count=1;if (count) lpMarksx+y*nWidth=1;/ else lpMarksx+y*nWidth=0;/黑色像素點記為白色像素點記為01for(y=1;y<nHeight-1;y+)for(x=1;x<nWidth-1;x+)if (lpMarksx+y*nWidth=0) Out(x,y)=255;/白色像素點灰度為255delete lpMarks;/釋放內(nèi)存GetDocument()->PutPoint();
13、Invalidate();/ 二值形態(tài)學(xué) : 膨脹void CJEFFView:OnDilation()int x,y,x1,y1;int count;/中間變量int *lpMarks=new intnWidth*nHeight;for(y=1;y<nHeight-1;y+)for(x=1;x<nWidth-1;x+)count=0;for(y1=-1;y1<2;y1+)for(x1=-1;x1<2;x1+)if (Out(x+x1,y+y1)=0)/以 (x,y)為中心的九個點是否有黑色的像素點count=1;/若有記為一if (count) lpMarksx+y*
14、nWidth=1;/ else lpMarksx+y*nWidth=0;/黑色像素點記為白色像素點記為01for(y=1;y<nHeight-1;y+)for(x=1;x<nWidth-1;x+)if (lpMarksx+y*nWidth) Out(x,y)=0;/黑色像素點輸出灰度值為0delete lpMarks;GetDocument()->PutPoint();Invalidate();/ 二值形態(tài)學(xué) : 開啟void CJEFFView:OnOpen()/ 先腐蝕后膨脹OnErosion();OnDilation();/ 二值形態(tài)學(xué) : 閉合void CJEFFVi
15、ew:OnClose()/ 先膨脹后腐蝕OnDilation();OnErosion();/ 二值形態(tài)學(xué) : 噪聲濾除void CJEFFView:OnZaosheng()/ 先開啟后閉合OnOpen();OnClose();/ 二值形態(tài)學(xué) : 邊緣提取void CJEFFView:OnBianyuan()int *lpMarks=new intnWidth*nHeight;/用于保存腐蝕圖象灰度值int *lpMarks1=new intnWidth*nHeight;/int x,y,x1,y1,count;for(y=0;y<nHeight-1;y+)用于保存原圖象灰度值for(x=
16、0;x<nWidth-1;x+)lpMarks1x+y*nWidth=Out(x,y);/原圖象保存至lpMarks1/ 以下為腐蝕操作for(y=1;y<nHeight-1;y+)for(x=1;x<nWidth-1;x+)count=1;for(y1=-1;y1<2;y1+)for(x1=-1;x1<2;x1+)if (Out(x+x1,y+y1)count=0;if (count) lpMarksx+y*nWidth=0;else lpMarksx+y*nWidth=255;/ 取原圖象與腐蝕圖象的差集為輸出for(y=0;y<nHeight-1;y+
17、)for(x=0;x<nWidth-1;x+)if(lpMarks1x+y*nWidth=lpMarksx+y*nWidth) Out(x,y)=255; else Out(x,y)=0;delete lpMarks;/釋放內(nèi)存delete lpMarks1;/釋放內(nèi)存GetDocument()->PutPoint();Invalidate();/ 放大鏡 :1 倍void CJEFFView:On1()m_i=1;Invalidate();/ 放大鏡 :2 倍void CJEFFView:On2()m_i=2;Invalidate();/ 放大鏡 :4 倍void CJEFFVi
18、ew:On4()m_i=4;Invalidate();/ 放大鏡 :8 倍void CJEFFView:On8()m_i=8;Invalidate();/ 灰度形態(tài)學(xué) : 膨脹void CJEFFView:OnDilation2()int *lpMarks=new intnWidth*nHeight;/定義一塊內(nèi)存, 大小為圖象像素數(shù)int x,y,x1,y1,s,t;for(y=1;y<nHeight-1;y+)for(x=1;x<nWidth-1;x+)s=t=255;/s,t為中間變量 , 因為要找最小值, 所以定義其為255for(y1=-1;y1<2;y1+)for
19、(x1=-1;x1<2;x1+)s=Out(x+x1,y+y1);/以點 (x,y)為中心的九個點進行操作if(s<t) t=s;/將九個點灰度的最小值傳給tlpMarksx+y*nWidth=t;/將處理后的圖像灰度值暫存于內(nèi)存中for(y=1;y<nHeight-1;y+)for(x=1;x<nWidth-1;x+)Out(x,y)=lpMarksx+y*nWidth;/傳至輸出delete lpMarks;/釋放內(nèi)存GetDocument()->PutPoint();Invalidate();/ 灰度形態(tài)學(xué) : 腐蝕void CJEFFView:OnEros
20、ion2()int x,y,x1,y1,s,t;int *lpMarks=new intnWidth*nHeight;/ 定義一塊內(nèi)存 , 大小為圖象像素數(shù) for(y=1;y<nHeight-1;y+)for(x=1;x<nWidth-1;x+)s=t=0;/s,t 為中間變量 , 因為要找最大值 , 所以定義其為 0 for(y1=-1;y1<2;y1+)for(x1=-1;x1<2;x1+)s=Out(x+x1,y+y1);/if(s>t) t=s;/以點 (x,y)為中心的九個點進行操作將九個點灰度的最大值傳給tlpMarksx+y*nWidth=t;/將
21、處理后的圖像灰度值暫存于內(nèi)存中for(y=1;y<nHeight-1;y+)for(x=1;x<nWidth-1;x+)Out(x,y)=lpMarksx+y*nWidth;/傳至輸出delete lpMarks;/釋放內(nèi)存GetDocument()->PutPoint();Invalidate();/ 灰度形態(tài)學(xué) : 開啟void CJEFFView:OnOpen2()/ 先腐蝕后膨脹OnErosion2();OnDilation2();/ 灰度形態(tài)學(xué) : 閉合void CJEFFView:OnClose2()/ 先膨脹后腐蝕OnDilation2();OnErosion2
22、();/ 灰度形態(tài)學(xué) : 平滑void CJEFFView:OnSmooth()/ 先開啟后閉合OnOpen2();OnClose2();/ 灰度形態(tài)學(xué) : 梯度void CJEFFView:OnTidu()/ TODO: Add your command handler code here int *lpMarks=new intnWidth*nHeight;int x,y,x1,y1,s,t; for(y=1;y<nHeight-1;y+)for(x=1;x<nWidth-1;x+)s=t=255; for(y1=-1;y1<2;y1+)for(x1=-1;x1<2
23、;x1+)s=Out(x+x1,y+y1);if(s<t) t=s;lpMarksx+y*nWidth=t;int *lpMarks1=new intnWidth*nHeight;for(y=1;y<nHeight-1;y+)for(x=1;x<nWidth-1;x+)s=t=0;for(y1=-1;y1<2;y1+)for(x1=-1;x1<2;x1+)s=Out(x+x1,y+y1);if(s>t) t=s;lpMarks1x+y*nWidth=t;for(y=1;y<nHeight-1;y+)for(x=1;x<nWidth-1;x+)if
24、 (lpMarksx+y*nWidth-lpMarks1x+y*nWidth=0) Out(x,y)=255; else Out(x,y)=lpMarksx+y*nWidth-lpMarks1x+y*nWidth;for(y=1;y<nHeight-1;y+)for(x=1;x<nWidth-1;x+)Out(x,y)=255-Out(x,y);delete lpMarks;delete lpMarks1;GetDocument()->PutPoint();Invalidate();/ 重載圖片void CJEFFView:OnReload()/ TODO: Add your
25、 command handler code here CJEFFDoc *pDoc=GetDocument();CString path=pDoc->GetPathName(); pDoc->OnNewDocument();pDoc->OnOpenDocument(path);pDoc->SetPathName(path);Invalidate();/ 灰度形態(tài)學(xué) : 邊緣提取void CJEFFView:OnBianyuanH()int *lpMarks=new intnWidth*nHeight;/int *lpMarks1=new intnWidth*nHeigh
26、t;/int x,y,x1,y1,s,t;for(y=0;y<nHeight-1;y+)用于保存腐蝕圖象用于保存原圖象for(x=0;x<nWidth-1;x+)lpMarks1x+y*nWidth=Out(x,y);/將原始圖片灰度值存于lpMarks1中/ 以下為腐蝕操作for(y=1;y<nHeight-1;y+)for(x=1;x<nWidth-1;x+)s=t=0;for(y1=-1;y1<2;y1+)for(x1=-1;x1<2;x1+)s=Out(x+x1,y+y1);if(s>t) t=s;lpMarksx+y*nWidth=t;/腐蝕
27、操作結(jié)果存于lpMarks 中/ 用原始圖象灰度值減去腐蝕操作結(jié)果灰度值for(y=1;y<nHeight-1;y+)for(x=1;x<nWidth-1;x+)if (lpMarks1x+y*nWidth-lpMarksx+y*nWidth=0 ) Out(x,y)=255; else Out(x,y)=lpMarks1x+y*nWidth-lpMarksx+y*nWidth;delete lpMarks;/釋放內(nèi)存delete lpMarks1;/釋放內(nèi)存GetDocument()->PutPoint();Invalidate();void CJEFFView:OnQus
28、e()GetDocument()->PutPoint();Invalidate();void CJEFFView:OnLButtonDown(UINT nFlags, CPoint point)CClientDC dc(this);char str32;sprintf(str,"(%d,%d)",point.x, point.y);dc.TextOut(0,0,str,strlen(str);/ JEFFView.h : interface of the CJEFFView class/#if !defined(AFX_JEFFVIEW_H_E252A5AE_1DAA
29、_11D4_9ABC_89D139F8CC3D_INCLUDED_) #define AFX_JEFFVIEW_H_E252A5AE_1DAA_11D4_9ABC_89D139F8CC3D_INCLUDED_#if _MSC_VER >= 1000#pragma once#endif / _MSC_VER >= 1000class CJEFFView : public CScrollViewprotected: / create from serialization onlyCJEFFView();DECLARE_DYNCREATE(CJEFFView)/ Attributes p
30、ublic:CJEFFDoc* GetDocument(); BOOL ValidDoc;int nWidth; int nHeight; BYTE *lpBits; BYTE *lpPoints;/ Operationspublic:/ Overrides/ ClassWizard generated virtual function overrides /AFX_VIRTUAL(CJEFFView)public:virtual void OnDraw(CDC* pDC); / overridden to draw this view virtual BOOL PreCreateWindow
31、(CREATESTRUCT& cs); protected:virtual void OnInitialUpdate(); / called first time after constructvirtual BOOL OnPreparePrinting(CPrintInfo* pInfo);virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);/AFX_VIRTUAL/ Implementation public
32、:virtual CJEFFView(); int m_i;#ifdef _DEBUGvirtual void AssertValid() const;virtual void Dump(CDumpContext& dc) const; #endifprotected:/ Generated message map functionsprotected:/AFX_MSG(CJEFFView)afx_msg void OnErosion();afx_msg void OnDilation();afx_msg void OnOpen();afx_msg void OnClose();afx
33、_msg void OnZaosheng();afx_msg void OnBianyuan();afx_msg void On1();afx_msg void On2();afx_msg void On4();afx_msg void On8();afx_msg void OnDilation2();afx_msg void OnErosion2();afx_msg void OnOpen2();afx_msg void OnClose2();afx_msg void OnSmooth();afx_msg void OnReload();afx_msg void OnTidu();afx_m
34、sg void OnBianyuanH();afx_msg void OnQuse();afx_msg void OnLButtonDown(UINT nFlags, CPoint point);/AFX_MSGDECLARE_MESSAGE_MAP();#ifndef _DEBUG / debug version in JEFFView.cppinline CJEFFDoc* CJEFFView:GetDocument() return (CJEFFDoc*)m_pDocument; #endif/AFX_INSERT_LOCATION/ Microsoft Developer Studio
35、 will insert additional declarations immediately before the previous line.#endif/ !defined(AFX_JEFFVIEW_H_E252A5AE_1DAA_11D4_9ABC_89D139F8CC3D_INCLUDED_)/ JEFFDoc.cpp : implementation of the CJEFFDoc class/#include "stdafx.h"#include "JEFF.h"#include "JEFFDoc.h"#ifdef _
36、DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CJEFFDocIMPLEMENT_DYNCREATE(CJEFFDoc, CDocument)BEGIN_MESSAGE_MAP(CJEFFDoc, CDocument)/AFX_MSG_MAP(CJEFFDoc)/ NOTE - the ClassWizard will add and remove mapping macros here./ DO NOT EDIT what you see in these blocks of
37、generated code! /AFX_MSG_MAPEND_MESSAGE_MAP()/ CJEFFDoc construction/destructionCJEFFDoc:CJEFFDoc()/ TODO: add one-time construction code here lpBitmap=0;lpPoints=0;CJEFFDoc:CJEFFDoc()if (lpBitmap) delete lpBitmap;if (lpPoints) delete lpPoints;BOOL CJEFFDoc:OnNewDocument()if (!CDocument:OnNewDocumen
38、t()return FALSE;/ TODO: add reinitialization code here/ (SDI documents will reuse this document)return TRUE;/ CJEFFDoc serializationvoid CJEFFDoc:Serialize(CArchive& ar)CFile *pFile;BITMAPINFOHEADER *pInfo;if (ar.IsStoring()/ TODO: add storing code here if (lpBitmap)ar.Write(lpBitmap,nLen);else/
39、 TODO: add loading code here if (lpBitmap) delete lpBitmap;if (lpPoints) delete lpPoints;ar.Flush();pFile=ar.GetFile();nLen=pFile->GetLength();lpBitmap=new BYTEnLen;ar.Read(lpBitmap,nLen);/get file typepInfo=(BITMAPINFOHEADER *)(lpBitmap+sizeof(BITMAPFILEHEADER);nWidth=pInfo->biWidth;nByteWidt
40、h=nWidth*3;if (nByteWidth%4) nByteWidth+=4-(nByteWidth%4);nHeight=pInfo->biHeight;if (pInfo->biBitCount!=24)if (pInfo->biBitCount!=8)AfxMessageBox(" 無效位圖 ");delete lpBitmap;lpBitmap=0;return;unsigned int PaletteSize=1<<pInfo->biBitCount;if(pInfo->biClrUsed!=0&&
41、pInfo->biClrUsed<PaletteSize)PaletteSize=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=lpBit
42、map;lpBitmap=new BYTEnLen;BITMAPFILEHEADER bmh;BITMAPINFOHEADERbmi;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.biCompressio
43、n=BI_RGB;bmi.biSizeImage=0;bmi.biXPelsPerMeter=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,
44、sizeof(BITMAPINFOHEADER);BYTE*lpBits2=lpBitmap+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=pPalettePalette.rgbRed;delete lpTemp;lpBits=lpBitmap+sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);lpPoints=new unsigned charnWidth*nHeight;GetPoin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 私人借款合同范本【常用版】8篇
- 公路路基工程施工合同
- 2025年江蘇貨運從業(yè)資格證模擬考試下載什么軟件
- 中小企業(yè)合同管理流程控制
- 2025年迪慶貨運從業(yè)資格證模擬考試題目
- 教育培訓(xùn)范文及案例分享
- 勞務(wù)分包合同臨建
- 訂餐配送合同7篇
- 合同協(xié)議鋼材采購合同8篇
- 高層精裝二手房買賣合同書7篇
- 2025年上半年潛江市城市建設(shè)發(fā)展集團招聘工作人員【52人】易考易錯模擬試題(共500題)試卷后附參考答案
- 旋轉(zhuǎn)類機電設(shè)備故障預(yù)測、診斷研究
- 旅游電子商務(wù)(第2版) 課件全套 周春林 項目1-8 電子商務(wù)概述-旅游電子商務(wù)數(shù)據(jù)挖掘
- 企業(yè)承包經(jīng)營合同范本
- 中學(xué)校長2025春開學(xué)典禮講話:以黃旭華之魂、DeepSeek 之智、哪吒之氣逐夢新程
- 【課件】自然環(huán)境課件-2024-2025學(xué)年七年級地理下冊人教版
- 2025年01月公安部第三研究所公開招聘人民警察筆試筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025-2030全球鋰電池用隔膜行業(yè)調(diào)研及趨勢分析報告
- 2025年南京鐵道職業(yè)技術(shù)學(xué)院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 《抖音高活躍群體研究報告》
- 2025年高考作文備考訓(xùn)練之二元思辨作文題目解析及范文:我與“別人”
評論
0/150
提交評論