易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
OpenCV图像差分
//图像差分
#include <stdio.h>
#include <stdlib.h>
#include "cv.h"
#include "highgui.h"
void
Image_Minus(IplImage *X, IplImage *Y, IplImage *X_Y)
{
//图像差分函数,将图像1中像素和图像2中对应像素想减,要求X、Y、X_Y大小相同
int
i,j,width,height,step,chanel;
unsigned
char
*dataX, *dataY, *dataX_Y;
width = X->width;
height = X->height;
dataX = (unsigned
char
*)X->imageData;
dataY = (unsigned
char
*)Y->imageData;
dataX_Y = (unsigned
char
*)X_Y->imageData;
step = X->widthStep/
sizeof
(
char
);
chanel = X->nChannels;
for
(i=0; i<height; i++)
for
(j=0; j<width*chanel; j++)
dataX_Y[i*step+j] = abs( dataX[i*step+j] - dataY[i*step+j]);
}
int
main()
{
IplImage* pImgX;
IplImage* pImgY;
IplImage* pImgX_Y;
CvSize dest_size;
pImgX = cvLoadImage(
"D://bishe//07_31_10_09_41_08.bmp"
, -1);
pImgY = cvLoadImage(
"D://bishe//07_31_10_11_40_48.bmp"
, -1);
if
(pImgX==0 || pImgY==0)
{
printf(
"载入文件失败!/n"
);
return
-1;
}
dest_size.width = pImgX->width;
dest_size.height = pImgX->height;
pImgX_Y = cvCreateImage(dest_size, pImgX->depth, pImgX->nChannels);
//图像差分
Image_Minus(pImgX, pImgY, pImgX_Y);
//创建窗口
cvNamedWindow(
"Picture X:"
, 1);
cvNamedWindow(
"Picture Y:"
, 1);
cvNamedWindow(
"Picture X-Y:"
, 1);
//显示图像
cvShowImage(
"Picture X:"
, pImgX);
cvShowImage(
"Picture Y:"
, pImgY);
cvShowImage(
"Picture X-Y:"
, pImgX_Y);
cvWaitKey(0);
//销毁窗口
cvDestroyWindow(
"Picture X:"
);
cvDestroyWindow(
"Picture Y:"
);
cvDestroyWindow(
"Picture X-Y:"
);
//释放图像
cvReleaseImage(&pImgX);
cvReleaseImage(&pImgY);
cvReleaseImage(&pImgX_Y);
return
0;
}
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图