在学ti c55x,试了下网上的图像处理例程后,自己参考着写了二值化的程序。
#define IMAGEWIDTH 80
#define IMAGEHEIGHT 80
extern unsigned char dbImage[IMAGEWIDTH*IMAGEHEIGHT]; //dbImage待处理的图像
extern unsigned char dbTargetImage[IMAGEWIDTH*IMAGEHEIGHT]; //dbTargetImage,二值化后的图像
unsigned char *p2TargetImage;
void img2bw(unsigned char *pImage, int nWidth, int nHeight) // pImage <---dbImage
{
unsigned int x, y,i;
p2TargetImage = dbTargetImage; //目标数组首地址赋给p2Tger指针
for (i=0; i<IMAGEWIDTH; i++, p2TargetImage++) // 存在疑问的地方
(*p2TargetImage) = 0;
for(x = 0; x< IMAGEHEIGHT; x++)
{
for(y = 0; y< IMAGEWIDTH; y++)
{
if(*pImage <125) *p2TargetImage = 0;
else *p2TargetImage = 255;
pImage++;
p2TargetImage++;
}
}
}
1。注释疑问的部分,为什么循环条件是<IMGWIDTH,定义的数组长度是IMGWIDTH*IMGHEIGHT啊,
按照上面的想法修改代码后,发现是错的,如果改成IMGWIDTH*IMGHEIGHT,,,发现最后二值化的数据传递到dbImage数组去了,也不知道为什么
2.注释疑问的地方代码存在有什么好处,不要也可以正常跑
多谢各位了,另外,感觉c5000做图像处理似乎不太合适诶,有谁出二手的DSP开发板出,好贵 |