资源简介
比如 将一个背景为白色的鱼贴到一个海洋背景中 本程序就可以只贴鱼的部分 而过滤掉白色的背景 看起来更为逼真(用opencv实现)
代码片段和文件信息
#include “stdio.h“
#include “highgui.h“
#include “cv.h“
void main()
{
IplImage *pBK;
IplImage *pImg1;
IplImage *pfish;
CvMat bk;
int ji;
pfish=cvLoadImage(“yu.jpg“1); //载入图片
pBK=cvLoadImage(“bk.jpg“1);
cvGetSubRect( pBK &bk cvRect(200100pfish->widthpfish->height) );
pImg1 = cvCreateImage(cvSize(pfish->widthpfish->height)IPL_DEPTH_8U1);
cvCvtColor(pfishpImg1CV_RGB2GRAY); //rgb转换为灰度图
for(j = 0;j< pImg1->height ; j++)
{
uchar* ptr = (uchar*)(pImg1->imageData+j*pImg1->widthStep);
uchar* ptr1 = (uchar*)(pfish->imageData+j*pfish->widthStep);
uchar* ptr2 = (uchar*)(bk.data.ptr+j*bk.step);
for(i = 0;i < pImg1->width ; i++)
{
if(ptr[i] < 250) //像素值小于250的保留下来 并显示到背景图上 即白色部分被去除
{
ptr2[i*3] = ptr1[i*3];
ptr2[i*3 + 1] = ptr
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 159025 2011-05-19 21:11 toumingse\bk.jpg
文件 1000 2011-08-24 17:48 toumingse\toumingse.c
文件 4204 2011-06-03 14:25 toumingse\toumingse.dsp
文件 543 2011-06-03 13:53 toumingse\toumingse.dsw
文件 41984 2011-08-24 17:48 toumingse\toumingse.ncb
文件 54784 2011-08-24 17:48 toumingse\toumingse.opt
文件 1216 2011-08-24 17:47 toumingse\toumingse.plg
文件 24221 2011-06-01 08:46 toumingse\yu.jpg
目录 0 2011-08-24 17:48 toumingse
----------- --------- ---------- ----- ----
286977 9
评论
共有 条评论