opencv找出两幅图像不同!
来源:互联网 发布:北京自考机构知乎 编辑:程序博客网 时间:2024/06/05 04:28
/* 程序名:hello.c
功能:从磁盘中读入图像文件,并将图像显示在屏幕上
*/
#include "cv.h"
#include "highgui.h"
#include <stdio.h>
int main( int argc, char** argv )
{
IplImage* pImg,*pImg2; //声明IplImage指针
int row,col,row1,col1;
int sign;
int i=0;
if( argc == 3 && (pImg = cvLoadImage( argv[1], 1)) != 0 && (pImg2 = cvLoadImage( argv[2], 1)) != 0)
{
cvNamedWindow( "Image", CV_WINDOW_AUTOSIZE ); //创建窗口
cvShowImage( "Image", pImg ); //显示图像
cvNamedWindow( "Image2", CV_WINDOW_AUTOSIZE ); //创建窗口
cvShowImage( "Image2", pImg2 ); //显示图像
for(i=0;i<9;i++)
{
for(row1=row=(i/3)*(pImg->height/3);row<row1+(pImg->height/3);row++)
{
uchar* ptr=(uchar*)(pImg->imageData+row*pImg->widthStep);
uchar* ptr2=(uchar*)(pImg2->imageData+row*pImg2->widthStep);
sign=0;
for(col1=col=(i%3)*(pImg->width/3);col<col1+(pImg->width/3);col++)
{
if(ptr[3*col]!=ptr2[3*col]||ptr[3*col+1]!=ptr2[3*col+1]||ptr[3*col+2]!=ptr2[3*col+2])
{
sign=i;
continue;
}
}
if(sign!=0)
{
continue;
}
}
if(sign!=0)
{
printf("the %d picture is the same!",sign);
}
}
// if(row==pImg->height&&row==pImg2->height)printf("two pictures are the same!");
// else printf("two pictures are different!");
cvWaitKey(0); //等待按键
cvDestroyWindow( "Image" );//销毁窗口
cvReleaseImage( &pImg ); //释放图像
cvDestroyWindow( "Image2" );//销毁窗口
cvReleaseImage( &pImg2 ); //释放图像
return 0;
}
return -1;
}
分成3*3块比较
- opencv找出两幅图像不同!
- OpenCV:选出两幅图像中不同的地方
- opencv 两幅图像融合
- 使用OpenCV对两幅图像求和
- OpenCv实现两幅图像的拼接
- Opencv实现两幅图像融合
- opencv 两幅图像直接相减
- OpenCV自带例子(三)两幅图像相加
- opencv-输入两幅图像实现线性融合
- OpenCV中一个窗口显示两幅图像
- OpenCV学习--实现两幅图像的融合
- 用OpenCV叠加(融合)两幅图像
- 【OpenCV学习】计算两幅图像的重叠区域
- OpenCV,计算两幅图像的单应矩阵
- OpenCV,计算两幅图像的单应矩阵
- opencv学习笔记之两幅图像显式融合
- OpenCV对不同图像深度的处理
- opencv统计图像不同区域面积
- U盘1G变8M解决办法
- 鼠標移到某個控件顯示信息
- 如何检查SQL Server tempdb瓶颈
- JQuery资料
- SQL 表锁
- opencv找出两幅图像不同!
- 屏幕分辨率的获取
- BO系列产品介绍
- 全局Hook
- 960 Grid System 网格系统
- 动态创建sql实例
- 图像编码
- 大字节序 小字节序
- c#中使用ADO.NET读取数据库中的数据