底片效果


最和谐的底片效果:算法( 255-生成灰度图)

 

算法

                            if (PH > 0)  //平缓反映了渐变色,但色彩浓度最高时会变白色
                            {
                                XLD = 255 - (int)(X + PH);


                            }
                            else
                            {
                                XLD = 255 - (int)(X - PH);
                            }
                            BMPClass.SetPixel(i, j, Color.FromArgb(XLD, XLD, XLD));

 

 

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值