资源简介
利用MATLAB程序对不同时间的两张图片进行变化检测,找出其中的变化部分
代码片段和文件信息
/* salient region detection
* image format: raw PGM
*
* described in:
* A Simple Method for Detecting Salient Regions
* Paul L. Rosin
* Pattern Recognition vol. 42 no. 11 pp. 2363-2371 2009.
*
* Paul Rosin
* September 2007
*/
#include
#include
#include
#ifndef FALSE
# define FALSE 0
# define TRUE (!FALSE)
#endif
#define SQR(x) ((x)*(x))
#define MAX_SIZE 2000
#include “pgmio.h“
int kernel[3][3] = {{121} {000} {-1-2-1}};
unsigned char image[MAX_SIZE][MAX_SIZE];
int dt_image[MAX_SIZE][MAX_SIZE];
unsigned char tmp[MAX_SIZE][MAX_SIZE];
unsigned char thresh[MAX_SIZE][MAX_SIZE];
double edges[MAX_SIZE][MAX_SIZE];
double summed_dt[MAX_SIZE][MAX_SIZE];
int heightwidthdepth;
main(argcargv)
int argc;
char *argv[];
{
int itxy;
char *infile*outfile*maskfile*saliencyfile;
infile = outfile = maskfile = saliencyfile = NULL;
/* parse command line */
for(i = 1; i < argc; i++) {
if (argv[i][0] == ‘-‘) {
switch(argv[i][1]) {
case ‘i‘:
i++;
infile = argv[i];
break;
case ‘m‘:
i++;
maskfile = argv[i];
break;
case ‘o‘:
i++;
outfile = argv[i];
break;
case ‘s‘:
i++;
saliencyfile = argv[i];
break;
default:
printf(“unknown option %s\n“argv[i]);
options(argv[0]);
}
}
else {
printf(“unknown option %s\n“argv[i]);
options(argv[0]);
}
}
if ((infile == NULL) || (outfile == NULL))
options(argv[0]);
read_pgm(imageinfile&width&height&depth);
sobel(imageedges);
/* for consistency with my original implementation
I rescale and copy the edges into an 8 bit image
*/
rescale(edgestmp);
for (y = 0; y < height; y++)
for (x = 0; x < width; x++)
summed_dt[x][y] = 0;
for (t = 4; t < 255; t += 4) {
// threshold
for (y = 0; y < height; y++)
for (x = 0; x < width; x++)
if (tmp[x][y] > t)
thresh[x][y] = 0;
else
thresh[x][y] = 255;
// perform DT
dt(threshdt_image);
// running DT sum
for (y = 0; y < height; y++)
for (x = 0; x < width; x++)
summed_dt[x][y] += dt_image[x][y];
}
/* set corners to average for the time being */
summed_dt[0][0] = (summed_dt[1][0] + summed_dt[0][1]) / 2;
summed_dt[0][height-1] = (summed_dt[1][height-1] + summed_dt[0][height-2]) / 2;
summed_dt[width-1][0] = (summed_dt[width-2][0] + summed_dt[width-1][1]) / 2;
summed_dt[width-1][height-1] = (summed_dt[width-2][height-1] + summe
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 154416 2007-09-24 10:26 19021.pgm
文件 80 2007-09-24 10:29 Makefile
文件 2383 2009-08-05 17:34 pgmio.h
文件 1304 2009-08-28 13:11 README
文件 10140 2009-08-28 13:12 salient_regions.c
- 上一篇:基于OLS 算法完成MG 时间序列问题
- 下一篇:模4可逆计数器
相关资源
- 图像加噪声后进行分割
- 彩色图像两种方法实现matlab滤波
- 基于MATLAB的小波图像去噪
- 2015数学建模A题matla视频提取图像帧
- MATLAB-图像灰度化处理
- 区域生长图像分割-MATLAB程序,注释比
- 计算两幅图像的psnr值matlab
- 基于互信息的图像配准程序
- MATLAB多视点图像合成GUI
- Matlab小波图像处理+完整程序
- matlab实现图像去燥滤波锐化边缘检测
- matlab图像分割垂直投影代码
- 非抽取小波图像去噪
- 数字图像处理图像压缩MATLAB程序及仿
- 数字图像处理图像增强MATLAB程序及仿
- 自适应全变分图像去噪Matlab源代码
- 正则化恢复图像
- 真彩色图像转 256 色图像的MATLAB实现
- 用POCS方法对图像进行超分辨率重构
- gabor滤波器的matlab源代码
- matlab识别英文字母程序 附带图像处理
- MATLAB图像分割提取算法源代码车牌识
- 双经度法的鱼眼图像畸变校正
- MATLAB 代码 基于C-V模型的水平集图像分
- 自适应门限法图像二值化(matlab)
- 水平集的图像分割
- 彩色图像分割——matlab实现FCM算法
- 图像评价程序 熵的计算
- matlab 对一个文件夹里的所有图像进行
- 数字图像报告-图像空间域平滑的几种
评论
共有 条评论