打印
[DSP编程]

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

[复制链接]
966|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在学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开发板出,好贵

相关帖子

沙发
zhangmangui| | 2016-3-1 23:21 | 只看该作者
没看明白

使用特权

评论回复
板凳
海中水| | 2016-3-2 11:50 | 只看该作者
问题没听太明白。

使用特权

评论回复
地板
JY-DX-JY| | 2016-3-3 12:45 | 只看该作者
是不是不是一个指针啊?(*p2TargetImage)
*pImage淘宝上的C5000开发板不贵啊

使用特权

评论回复
5
luofeng2g| | 2016-3-3 13:15 | 只看该作者
for (i=0; i<IMAGEWIDTH; i++, p2TargetImage++)  //   存在疑问的地方
                (*p2TargetImage) = 0;
1.估计是写漏了,就是*p2TargetImage初始化而已;
2。通过后面程序可知,这步可以不要

使用特权

评论回复
6
trysomething|  楼主 | 2016-3-3 23:30 | 只看该作者

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

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

使用特权

评论回复
7
luofeng2g| | 2016-3-4 09:17 | 只看该作者
trysomething 发表于 2016-3-3 23:30
谢谢回答
2. 这句话可以不要,我也这样认为,事实上也没什么影响;

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

使用特权

评论回复
8
trysomething|  楼主 | 2016-3-4 13:09 | 只看该作者
luofeng2g 发表于 2016-3-4 09:17
你也可以像下面那种方式写,试试;还有具体现象是什么,说清楚点!


后续sobel函数的先不说了,也是奇怪的结果

正常.png (49.25 KB )

正常效果

正常效果

不正常11.png (34.86 KB )

出错,dbTargetImage没显示,并且对dbImage产生了影响

出错,dbTargetImage没显示,并且对dbImage产生了影响

不正常.png (17.65 KB )

不正常.png

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

15

帖子

1

粉丝