在学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开发板出,好贵
|