免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2435 | 回复: 1
打印 上一主题 下一主题

图像处理程序,不懂Vector <int, 2> (1,0) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-01-17 18:09 |只看该作者 |倒序浏览
由于需要,我现在正在学习C++,我有个程序,到现在都没有弄明白。请大家指点下.

falsepixels是一个二维的文本文件 (512,512),只含有1和0. 如果是1的话,就 对相应的img数据使用均值滤波
img是一个数据文本文件。
程序目的是去除img中一些噪点。
  1. #define FFT2 fft<2, double, complex<double> >

  2. void fixFalsePixels(FFT2 &img, FFT2 &falsePixels) {
  3.         Vector<int,2> i;
  4.         FFT2 tfp(falsePixels);
  5.         for (bool again = true; again == true; ) {
  6.         again = false;
  7.                 for (Vector<int,2> i=0; i[0]<512; ++i[0])
  8.                         for (i[1]=0; i[1]<512; ++i[1]) {
  9.                                 int n=0;
  10.                                 if (tfp.r[i] != 0) {
  11.                                         if ((i[0] > 0) && (tfp.r[i - Vector<int,2> (1,0)] == 0)) {
  12.                                                 ++n;
  13.                                                 img.r[i] = img.r[i - Vector<int,2> (1,0)];
  14.                                         }
  15.                                         if ((i[0] < 511) && (tfp.r[i + Vector<int,2> (1,0)] == 0)) {
  16.                                                 if (++n == 1)
  17.                                                         img.r[i] = img.r[i + Vector<int,2> (1,0)];
  18.                                                 else
  19.                                                         img.r[i] += img.r[i + Vector<int,2> (1,0)];
  20.                                         }
  21.                                         if ((i[1] > 0) && (tfp.r[i - Vector<int,2> (0,1)] == 0)) {
  22.                                                 if (++n == 1)
  23.                                                         img.r[i] = img.r[i - Vector<int,2> (0,1)];
  24.                                                 else
  25.                                                         img.r[i] += img.r[i - Vector<int,2> (0,1)];
  26.                                         }
  27.                                         if ((i[1] < 511) && (tfp.r[i + Vector<int,2> (0,1)] == 0)) {
  28.                                                 if (++n == 1)
  29.                                                         img.r[i] = img.r[i + Vector<int,2> (0,1)];
  30.                                                 else
  31.                                                         img.r[i] += img.r[i + Vector<int,2> (0,1)];
  32.                                         }
  33.                                         if (n == 0)
  34.                                                 again = true;
  35.                                         else {
  36.                                                 img.r[i] /= n;
  37.                                                 tfp.r[i] = 0;
  38.                                         }
  39.                                 }
  40.                         }
  41.         }
  42. }
复制代码
我现在就不明白,这个vector <int, 2> (1,0)是什么意思?就是一个2维的int型的vector, 但是这个(1,0)是什么意思?

除此之外,我还像编写一个程序在img检测这些噪点,但我不知道如何做。这些噪点的值是11810, 可是img中心位置,也有一些点的值是11810,是有用的信息。我不知道有什么比较好的算法来解决这个问题。

论坛徽章:
12
巳蛇
日期:2013-09-16 15:32:242015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之约旦
日期:2015-02-11 14:38:37双鱼座
日期:2015-01-05 11:05:47戌狗
日期:2014-12-08 09:41:18戌狗
日期:2014-08-15 09:29:29双子座
日期:2014-08-05 09:17:17卯兔
日期:2014-06-08 15:32:18巳蛇
日期:2014-01-27 08:47:08白羊座
日期:2013-11-28 21:04:15巨蟹座
日期:2013-11-13 21:58:012015年亚洲杯之科威特
日期:2015-04-17 16:51:51
2 [报告]
发表于 2012-01-17 19:47 |只看该作者
你贴的代码是Vector,不是std::vector,在源代码里面找找看有没有定义。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP