找回密码
 注册
搜索
查看: 1244|回复: 2

[讨论] [求助]图像处理中的动态数组问题求教

[复制链接]
发表于 2006-4-24 19:27:00 | 显示全部楼层 |阅读模式
我正在编写一个图像处理方面的程序,
1)由于对于图像大小在事先不知,可能是640×480,也可能是500×300。
而在处理中经常需要对每个象素进行各种标记,这时二维数组是最好的,但是二维数组定义时必须使用常量定义大小,而我只有变量width和length,这时应该如何处理呢,如果按可能的最大情况定义无疑会消耗系统资源。
2)对于第一个问题,我还有两个变量可以知道所需的大小,而有时我需要将图像分成若干个区域,这时链表是一个办法,可是太复杂了,不知是否可以使用数组,若可以使用,应该如何定义,又如何在不需要时删除。
谢谢!
发表于 2006-4-24 20:25:00 | 显示全部楼层
<P>我看还是显然要动态分配内存,要是都用全局数组的话确实很占资源。malloc();free()配对。</P>
<P>不过要小心使用,不然很容易出问题,分配失败的时候一定要有处理办法。</P>[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

发表于 2006-5-10 13:12:00 | 显示全部楼层
malloc();free()是C中的函数,楼主如果用C++的话,可以如下方法:
事先定义好:char * image_data;
得到图像大小后:image_data=new char[width*height];
访问时可以:image_data[i*height+width];
回收内存:delete []image_data;

或用二维数组:
char **image_data;
image_data=new char*[height];
for(int i=0;i&lt;height;i++)
image_data=new char[wdith];

访问时可以:image_data[row,col];
回收:
for(for(int i=0;i&lt;height;i++)
delete []image_data;

delete []image_data;


对于第二问,用数组即可,方法照上。
[br]<p align=right><font color=red>+5 RD币</font></p>
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-5-13 03:42 , Processed in 0.045103 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表