已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
多媒体原理与系统设计实验报告项目名称 实验一 专业班级 软件1203 学 号 姓 名 实验成绩:批阅教师:2014年 11 月 19 日实验1数字图像处理程序设计实验学时: 2 实验地点: 二综203 实验日期: 2014/11/19 一、实验目的1强化对BMP位图数据格式的理解2掌握数字图像数据的基本操作方法(像素级)3理解图像融合的基本原理4提高VC+图像处理程序设计能力二、实验内容和方法1向内存加载两个或多个 BMP位图文件2利用像素操作实现单色(R、G、B)、灰度图像的显示3通过操作像素实现图像的倒立和正立显示4实现两个图像的叠加(透明性原理,可见水印原理)5通过像素操作处理图像扭曲问题(即当图像的每行像素个数不能被4整除时的填充字节问题)。三、实验要求1实验前预习BMP位图文件数据格式2准备两个分辨率相同但内容不同的BMP位图文件(24位)3熟悉教师提供的框架性代码(仅含打开文件、数据定位等基本功能)4独立完成各项实验任务5做好实验记录(保存各类实验的输出图像)四、实验步骤1启动VC+编程环境2打开框架性解决方案文件3编写关键代码4运行程序5验收五、实验结果主程序代码:#include stdafx.h#include waterRipple.h#define MAX_LOADSTRING 100/#define IMAGE_WIDTH 640#define IMAGE_HIGHT 480typedef struct COLORBYTE b;BYTE g;BYTE r;RGBCOLOR;/ 全?局?变?量?:HINSTANCE hInst;/ 当前实例yTCHAR szTitleMAX_LOADSTRING;/ 标题a栏?文?本?TCHAR szWindowClassMAX_LOADSTRING;/ 主窗口类名?void NextFrameWaveEnerge();void RenderRipple();void disturb();/*1.高?度和宽度颠?倒1,?why??2.*/int static buffer_1IMAGE_HIGHTIMAGE_WIDTH,buffer_2IMAGE_HIGHTIMAGE_WIDTH;int static tmpIMAGE_HIGHTIMAGE_WIDTH;/中D间?矩?阵,?用?于交?换?波能static COLOR det_imageIMAGE_HIGHTIMAGE_WIDTH;/要a显?示?的?目?标图?像?static FILE *ifp;static char *filename = 1.bmp;/24位?的?位?图?static unsigned char mybufIMAGE_HIGHT*IMAGE_WIDTH*3+100;static BITMAPFILEHEADER *pbmpfh;static BITMAPINFO*pbmpi;static BYTE*pBits;static int cxDib,cyDib;/ 此?代码?模块中D包含?的?函数y的?前向声明:ATOMMyRegisterClass(HINSTANCE hInstance);BOOLInitInstance(HINSTANCE, int);LRESULT CALLBACKWndProc(HWND, UINT, WPARAM, LPARAM);INT_PTR CALLBACKAbout(HWND, UINT, WPARAM, LPARAM);int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)UNREFERENCED_PARAMETER(hPrevInstance);UNREFERENCED_PARAMETER(lpCmdLine); / TODO: 在此?放?置?代码?。/for(int y=0;yIMAGE_HIGHT;y+)for(int x=0;xbfOffBits;cxDib = pbmpi-bmiHeader.biWidth;cyDib = pbmpi-bmiHeader.biHeight;MSG msg;HACCEL hAccelTable;/ 初?始?化全?局?字?符?串?LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);LoadString(hInstance, IDC_WATERRIPPLE, szWindowClass, MAX_LOADSTRING);MyRegisterClass(hInstance);/ 执行D应|用?程序初?始?化:if (!InitInstance (hInstance, nCmdShow)return FALSE;hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WATERRIPPLE);/ 主消?息循-环:while (GetMessage(&msg, NULL, 0, 0)if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)TranslateMessage(&msg);DispatchMessage(&msg);return (int) msg.wParam;/ 函数y: MyRegisterClass()/ 目?的?: 注册窗口类。/ 注释:/ 仅?当希望?/ 此?代码?与?添加到? Windows 95 中D的?“RegisterClassEx”/ 函数y之?前的? Win32 系统3兼?容Y时,?才?需要a此?函数y及其?用?法。调用?此?函数y十?分?重?要a,?/ 这a样应|用?程序就可以?获?得?关?联a的?/ “格?式?正y确的?”小?图?标。/ATOM MyRegisterClass(HINSTANCE hInstance)WNDCLASSEX wcex;wcex.cbSize = sizeof(WNDCLASSEX);wcex.style= CS_HREDRAW | CS_VREDRAW;wcex.lpfnWndProc= WndProc;wcex.cbClsExtra= 0;wcex.cbWndExtra= 0;wcex.hInstance= hInstance;wcex.hIcon= LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WATERRIPPLE);wcex.hCursor= LoadCursor(NULL, IDC_ARROW);wcex.hbrBackground= (HBRUSH)(COLOR_WINDOW+1);wcex.lpszMenuName= MAKEINTRESOURCE(IDC_WATERRIPPLE);wcex.lpszClassName= szWindowClass;wcex.hIconSm= LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL);return RegisterClassEx(&wcex);/ 函数y: InitInstance(HINSTANCE, int)/ 目?的?: 保存?实例y句?柄并创建主窗口/ 注释:/ 在此?函数y中D,?我们?在全?局?变?量?中D保存?实例y句?柄并/ 创建和显?示?主程序窗口。/BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) HWND hWnd; hInst = hInstance; / 将?实例y句?柄存?储在全?局?变?量?中D hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (!hWnd) return FALSE; ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); / / SetTimer(hWnd,ID_TIMER,10,NULL); return TRUE;/ 函数y: WndProc(HWND, UINT, WPARAM, LPARAM)/ 目?的?: 处|理主窗口的?消?息。/ WM_COMMAND- 处|理应|用?程序菜?单/ WM_PAINT- 绘?制?主窗口/ WM_DESTROY- 发送退?出?消?息并返回?/LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)int wmId, wmEvent;PAINTSTRUCT ps;HDC hdc;switch (message)case WM_COMMAND:wmId = LOWORD(wParam);wmEvent = HIWORD(wParam);/ 分?析?菜?单选?择?:switch (wmId)case IDM_ABOUT:DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);break;case IDM_EXIT:DestroyWindow(hWnd);break;default:return DefWindowProc(hWnd, message, wParam, lParam);break;case WM_TIMER:hdc = GetDC(hWnd);/给?水?池?一?个?扰?动disturb();/调用?波能计?算?函数yNextFrameWaveEnerge();/调用?渲?染?图?像?函数yRenderRipple();/显?示?已?经-渲?染?过y的?图?像?SetDIBitsToDevice(hdc, 0, 0, cxDib, cyDib, 0, 0, 0, cyDib, det_image, pbmpi, DIB_RGB_COLORS);ReleaseDC(hWnd,hdc);case WM_PAINT:hdc = BeginPaint(hWnd, &ps);/ TODO: 在此?添加任?意a绘?图?代码?.SetDIBitsToDevice(hdc, 0, 0, cxDib, cyDib, 0, 0, 0, cyDib, pBits, pbmpi, DIB_RGB_COLORS);EndPaint(hWnd, &ps);break;case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hWnd, message, wParam, lParam);return 0;/ “关?于”框的?消?息处|理程序。INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)UNREFERENCED_PARAMETER(lParam);switch (message)case WM_INITDIALOG:return (INT_PTR)TRUE;case WM_COMMAND:if (LOWORD(wParam) = IDOK | LOWORD(wParam) = IDCANCEL)EndDialog(hDlg, LOWORD(wParam);return (INT_PTR)TRUE;break;return (INT_PTR)FALSE;void NextFrameWaveEnerge()for(int y = 0 ; y cyDib-1 ; y+)for(int x = 0 ; x 1) - buffer_2yx;buffer_2yx -= buffer_2yx8;for(int y = 0 ; y cyDib ; y+)for(int x = 0 ; x cxDib ; x+)tmpyx = buffer_1yx;for(int y = 0 ; y cyDib ; y+)for(int x = 0 ; x cxDib ; x+)buffer_1yx = buffer_2yx;for(int y = 0 ; y cyDib ; y+)for(int x = 0 ; x cxDib ; x+)buffer_2yx = tmpyx;void RenderRipple()for(int y = 0 ; y cyDib ; y+)for(int x = 0 ; x = cxDib)xcff = cxDib - 1;if(xcff = cyDib)ycff = cyDib - 1;if(ycff =cxDib - stonesize) | (x=cyDib - stonesize) | (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 间苯二甲胺生产技术及市场行情研究报告
- 青岛特种玻璃项目实施方案
- 项目评估方案范文-策划方案-
- 广西中考物理5年(2021-2025)真题分类汇编:专题02 内能与内能的利用(原卷版)
- 2025年检验类之临床医学检验技术中级每日一练试卷B卷含答案
- 2020-2025年执业药师之中药学综合知识与技能通关考试题库带答案解析
- 2025年一级造价师之建设工程技术与计量(水利)押题练习试题A卷含答案
- 超市员工受伤签协议书
- 承诺补贴资金归属协议书
- 微商合作协议书
- 上海c1满分学习考试题库及答案
- T-CRACM 0003-2025 中医体质药食同源膏方标准
- 工程管理专业毕业论文范文集
- 回收厂区废料合同范本
- 咖啡培训知识讲解课件
- 第13课+清朝前中期的鼎盛与危机-2025-2026学年高一上学期统编版必修中外历史纲要上
- 药物性肝损伤科普
- HSK4级课件内容教学课件
- 延续护理模式
- 学堂在线 遥测原理 章节测试答案
- 财务会计招聘模板
评论
0/150
提交评论