




免费预览已结束,剩余2页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include stdafx.h#include cv.h#include highgui.h#include cxcore.h#include #include using namespace std;#define pi 3.1415926#define h 20 /#define width 512#define height 480struct colornode int colorR; int colorG; int colorB;vector background;vector target;int flag;/1代表前景,2代表背景CvPoint prev_pt = -1,-1;IplImage *pImg,*newImg,*showImg;int color;IplImage* inpaint_mask = 0;IplImage* img0 = 0, *img = 0, *inpainted = 0;uchar *data,*newdata,*showdata;int channels, step,depth; double prbxheightwidth,prfxheightwidth;void on_mouse(int event,int x,int y,int flags,void * param) colornode a; if( event = CV_EVENT_LBUTTONUP | !(flags & CV_EVENT_FLAG_LBUTTON) ) prev_pt = cvPoint(-1,-1); else if( event = CV_EVENT_LBUTTONDOWN ) prev_pt = cvPoint(x,y); else if( event = CV_EVENT_MOUSEMOVE & (flags & CV_EVENT_FLAG_LBUTTON) CvPoint pt = cvPoint(x,y); if( prev_pt.x height; /width=pImg-width; newImg=cvCloneImage(pImg); showImg=cvCloneImage(pImg); cvNamedWindow(Interaction,-1); cvShowImage(Interaction,newImg); depth=pImg-depth; step=pImg-widthStep; channels=pImg-nChannels; data=(uchar *) pImg-imageData; newdata=(uchar *) newImg-imageData; showdata=(uchar *) showImg-imageData; cvSetMouseCallback( Interaction, on_mouse, 0); printf( Hot keys: n t ESC - quit the programn t 1 - target paintingn t 2 - background paintingn); for(;) char ch=cvWaitKey(); if (ch=3) break; if (ch=1) flag=1; if(ch= 2) flag=2; /cvShowImage( Interaction, newImg); /cvWaitKey(0); /继续处理 int sizeback,sizetarget; double distance; /data=(uchar *) pImg-imageData; for(i=0;iheight;i+) for(j=0;jwidth;j+) prbxij=0; prfxij=0;/target sizeback=background.size(); sizetarget=target.size(); printf(computing probability.n); for(i=0;iheight;i+) printf(i=%dn,i); for(j=0;jwidth;j+) for(k=0;ksizeback;k+) distance=(backgroundk.colorR-datai*step+j*channels)*(backgroundk.colorR-datai*step+j*channels)+(backgroundk.colorG-datai*step+j*channels+1)*(backgroundk.colorG-datai*step+j*channels+1)+(backgroundk.colorB-datai*step+j*channels+2)*(backgroundk.colorB-datai*step+j*channels+2); prbxij+=exp(-distance/(2*h*h)/(sizeback*h*h*sqrt(2*pi); for(k=0;ksizetarget;k+) distance=(targetk.colorR-datai*step+j*channels)*(targetk.colorR-datai*step+j*channels)+(targetk.colorG-datai*step+j*channels+1)*(targetk.colorG-datai*step+j*channels+1)+(targetk.colorB-datai*step+j*channels+2)*(targetk.colorB-datai*step+j*channels+2); prfxij+=exp(-distance/(2*h*h)/(sizetarget*h*h*sqrt(2*pi); double sumprb,sumprf; sumprb=0.; sumprf=0.; for(i=0;iheight;i+) for(j=0;jwidth;j+) sumprb+=prbxij; sumprf+=prfxij; for(i=0;iheight;i+) for(j=0;jwidth;j+) prbxij/=sumprb; prfxij/=sumprf; for(i=0;iheight;i+) for(j=0;j=prfxij)/这个点属于前景 showdatai*step+j*channels=255; showdatai*step+j*channels+1=255; showdatai*step+j*channels+2=255; cvNamedWindow(showImg,1); cvShowImage(showImg,showImg); cvWaitKey(0); cvDestroyWindow(Interac
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 申庭主管护师课件
- 甲状腺术后护理常规
- 倍力桥 教学课件
- 江苏南通2020-2022年中考满分作文54篇
- 剪羊毛课件教学设计
- 用水彩笔点叶子颜色课件
- 生鸡蛋课件教学课件
- 生鲜货源管理培训课件
- 生活工作安全知识培训课件
- 胆固醇性胸膜炎护理查房记录
- 《百团大战》历史课件
- 脓毒症诊断和治疗进展课件
- 马克思主义基本原理课件- (全套完整课件)全版
- 【优秀】脑膜瘤护理查房课件
- 初中数学教材解读人教八年级上册(2023年修订)第十三章轴对称等边三角形 导学案
- GB∕T 3480.3-2021 直齿轮和斜齿轮承载能力计算 第3部分:轮齿弯曲强度计算
- 社区居民信息登记卡
- 小金库治理-PPT优秀课件
- 水稳层施工方案(完整版)
- 外科医学—颅内和椎管内血管性疾病
- 井控设备(2015)
评论
0/150
提交评论