trysomething 发表于 2016-2-16 16:05

在数组指针这里弄不明白了

在学ti c55x,试了下网上的图像处理例程后,自己参考着写了二值化的程序。

#define IMAGEWIDTH 80
#define IMAGEHEIGHT 80

extern unsigned char dbImage;    //dbImage待处理的图像
extern unsigned char dbTargetImage;   //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开发板出,好贵

zhangmangui 发表于 2016-3-1 23:21

没看明白

海中水 发表于 2016-3-2 11:50

问题没听太明白。

JY-DX-JY 发表于 2016-3-3 12:45

是不是不是一个指针啊?(*p2TargetImage)
*pImage淘宝上的C5000开发板不贵啊

luofeng2g 发表于 2016-3-3 13:15

for (i=0; i<IMAGEWIDTH; i++, p2TargetImage++)//   存在疑问的地方
                (*p2TargetImage) = 0;
1.估计是写漏了,就是*p2TargetImage初始化而已;
2。通过后面程序可知,这步可以不要

trysomething 发表于 2016-3-3 23:30

luofeng2g 发表于 2016-3-3 13:15
for (i=0; i

谢谢回答
2. 这句话可以不要,我也这样认为,事实上也没什么影响;

1. 这个初始化不是写漏,而是不能写成 i < IMAGEWIDTH*IMAGEHEIGHT, 不然后结果错误(
dbImage指向的是原始图像数组首地址,而p2TargetImage指向的是目标图像,也就二值化后的图像地址。
如果写成 i< IMAGEWIDTH*IMAGEHEIGHT, 在ccs3.3中,执行完该函数后,dbTargetImage未能正确显示预想的结果,而dbImage的图像产生了变化(之前一次调试是显示本该在dbTargetImage显示的二值图像,今天试了一下,虽然也是二值图像,但该图像沿对角线平移了一些))在CCS v4也调了下,也是这样莫名其妙的错误,但是现象有点不同。而i < IMAGEWIDTH的话,一切正常。

luofeng2g 发表于 2016-3-4 09:17

trysomething 发表于 2016-3-3 23:30
谢谢回答
2. 这句话可以不要,我也这样认为,事实上也没什么影响;



你也可以像下面那种方式写,试试;还有具体现象是什么,说清楚点!

trysomething 发表于 2016-3-4 13:09

luofeng2g 发表于 2016-3-4 09:17
你也可以像下面那种方式写,试试;还有具体现象是什么,说清楚点!


后续sobel函数的先不说了,也是奇怪的结果
页: [1]
查看完整版本: 在数组指针这里弄不明白了