大恒图像算法研发工程师面经

  各位亲们,你们好!我是应届毕业生小秦,去大恒图像应聘了算法研发工程师一职,下面跟大家分享下我的面试经验吧!希望我今天分享的面试心得对大家以后去这家公司参加面试时,起到一点点的作用。

  2012年8月30日下午3:00来到大恒图像公司,公司职员给了一份笔试,紧接着就是面试。其中最搞笑的是我正在做笔试题,他们居然在单位里做第八套广播体操,不过还是要赞一个的,感觉挺不错的。下面就跟大家分享一下大恒图像的笔试题。我面的是算法工程师,笔试题都是很基本的题,可是我答的很烂,主要是因为准备补充分吧

  1、C语言题,主要考察宏替换、变量的作用域以及逻辑运算的,挺简单的,不过还是有很多陷阱的;

  2、用C++编写一程序,判断操作系统是16位还是32位;

  <span style="font-family:Arial;color:#333333;">16位的系统下,

  int i = 65536;

  cout << i; // 输出0;

  int i = 65535;

  cout << i; // 输出-1;

  32位的系统下,

  int i = 65536;

  cout << i; // 输出65536;

  int i = 65535;

  cout << i; // 输出65535;</span>

  3、两个循环链变A和B,头指针分别是pHeadA,pHeadB,删除链表中相同的元素data;

  有双向循环链表结点定义为:

  struct node

  { int data;

  struct node *front,*next;

  };

  有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除

  BOOL DeteleNode(Node *pHeader, DataType Value)

  {

  if (pHeader == NULL) return;

  BOOL bRet = FALSE;

  Node *pNode = pHead;

  while (pNode != NULL)

  {

  if (pNode->data == Value)

  {

  if (pNode->front == NULL)

  {

  pHeader = pNode->next;

  pHeader->front = NULL;

  }

  else

  {

  if (pNode->next != NULL)

  {

  pNode->next->front = pNode->front;

  }

  pNode->front->next = pNode->next;

  }

  Node *pNextNode = pNode->next;

   pNode;

  pNode = pNextNode;

  bRet = TRUE;

  //不要break或return, 删除所有

  }

  else

  {

  pNode = pNode->next;

  }

  }

  return bRet;

  }

  void DE(Node *pHeadA, Node *pHeadB)

  {

  if (pHeadA == NULL || pHeadB == NULL)

  {

  return;

  }

  Node *pNode = pHeadA;

  while (pNode != NULL)

  {

  if (DeteleNode(pHeadB, pNode->data))

  {

  if (pNode->front == NULL)

  {

  pHeadA = pNode->next;

  pHeadA->front = NULL;

  }

  else

  {

  pNode->front->next = pNode->next;

  if (pNode->next != NULL)

  {

  pNode->next->front = pNode->front;

  }

  }

  Node *pNextNode = pNode->next;

   pNode;

  pNode = pNextNode;

  }

  else

  {

  pNode = pNode->next;

  }

  }

  }

  4、给你一幅图像的指针img、图像的长和宽heigth、width,以及灰度直方图指针hist

  要有C语言用

  for(i=0;i<256;i++) { hist[i]=0; } for(i=0;i<Height;i++) for(j=0;j<Width;j++) { img=(unsigned char*)img+Width*i+j; hist[*img]++; } 5、图像的滤波、卷积、平滑以及图像边缘化的区别和联系

  图像滤波,即在尽量保留图像细节特征的条件下对目标像的噪声进行抑制;

  图像卷积,是图像变得光滑,降低图像中的噪声

  图像平滑,是指用于突出图像的宽大区域、低频成分、主干部分或抑制图像噪声和干扰高频成分,使图像亮度平缓渐变,减小突变梯度,改善图像质量的图像处理方法。

  图像边缘化,

  6.修改程序的bug,并对程序进行优化,主要bug是图像指针的问题,对符合条件的像素点进行处理,主要是利用两个循环,对像素的索引不对,以及表达式不对;

  7.题目没有看懂,就是关于相机和图像高亮部分的处理;

  笔试完直接就面试,估计被BS的,至今没戏,主要是笔试做的太烂了!最重要的是忘了把试卷照下来,这是个遗憾。


电脑版