照片底片曝光
VC++编程对照片处理底片设定曝光时间 //根据位图的大小改变窗口的大小 pWnd-> SetWindowPos(NULL,0,0,bm.bmWidth,bm.bmHeight,SWP_NOMOVE); //在内存中生成一个兼容设备,然后拷贝到屏幕显示 pDC = pWnd-> GetDC(); //取得绘图设备 memDC.CreateCompatibleDC(pDC);//生成一个兼容设备 memDC.SelectObject (bmpDisplay);//在兼容设备中装载位图 //显示 pWnd-> GetClientRect(&rect); //得到控件窗口的 "视 "区域 pDC-> StretchBlt(0,0,rect.Width(),rect.Height(),&memDC,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY); ReleaseDC(pDC); DeleteDC(memDC); mBitmap.Detach(); DeleteObject(bmpDisplay); pImg = cvLoadImage("D:\\n.bmp", 1); img1 = cvCreateImage(cvGetSize(pImg),IPL_DEPTH_8U,3); img2 = cvCreateImage(cvGetSize(pImg),IPL_DEPTH_8U,3); img3 = cvCreateImage(cvGetSize(pImg),IPL_DEPTH_8U,3); for(i=0;i<pImg->height;i++) { for(j=0;j<pImg->width;j++) { s=cvGet2D(pImg,i,j); // get the (i,j) pixel value s1.val[0]=0; s1.val[1]=s.val[1]; s1.val[2]=s.val[2]; cvSet2D(img1,i,j,s1); // set the (i,j) pixel value } } for(i=0;i<pImg->height;i++) { for(j=0;j<pImg->width;j++) { s=cvGet2D(pImg,i,j); // get the (i,j) pixel value s1.val[0]=s.val[0]; s1.val[1]=0; s1.val[2]=s.val[2]; cvSet2D(img2,i,j,s1); // set the (i,j) pixel value } } for(i=0;i<pImg->height;i++) { for(j=0;j<pImg->width;j++) { s=cvGet2D(pImg,i,j); // get the (i,j) pixel value s1.val[0]=s.val[0]; s1.val[1]=s.val[1]; s1.val[2]=0; cvSet2D(img3,i,j,s1); // set the (i,j) pixel value } } img = cvCreateImage(cvGetSize(pImg),IPL_DEPTH_8U,3); for(i=0;i<pImg->height;i++) { for(j=0;j<pImg->width;j++) { s=cvGet2D(img1,i,j); // get the (i,j) pixel value s1.val[0]=s.val[0]; s1.val[1]=s.val[1]; s1.val[2]=0; cvSet2D(img,i,j,s1); // set the (i,j) pixel value } } cvSaveImage("D:\\b.bmp", img1); cvSaveImage("D:\\g.bmp", img2); cvSaveImage("D:\\r.bmp", img3); } void
- 1
- 粉丝: 0
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助