draw_rectangle1_mod 和 draw_rectangle2_mod画矩形ROI的一些问题!:
< 一 >错误情景再现:
参数没有错误,原因是在Image窗口上画ROI的时候,没有移动和改变起始ROI大小,直接右键确定,所导致的错误(输出值变为空),请问如何处理这个问题?
< 二 >产生错误的具体步骤说明:
1、hdevelop源代码,先执行draw_rectangle1_mod
read_image (Image, 'fabrik') dev_open_window (0, 0, 512, 512, 'black', WindowHandle) dev_display (Image) Row1:=30 Column1:=31 Row2:=210 Column2:=212 draw_rectangle1_mod (WindowHandle, 100, 100, 200, 200, Row1, Column1, Row2, Column2)
2、接下来的操作:在Image窗口上画ROI的时候,没有移动和改变起始ROI大小,直接右键确定
3、输出值得结果: Row1, Column1, Row2, Column2 的值是Null 的,不是初始值,也不是 0 啊!
4、如何代码导出到vc++上,会因为输出的Null,导致程序错误崩溃
< 三 >解决办法:
1、调用函数draw_rectangle2_mod时输出参数从double类型改为HTUPLE。
2、这样当不移动或改变大小时,输出的数组就为空,数组元素为零。
3、通过判断数组元素个数可以判断画矩形是否成功。
在netMarketing类库中,发现draw_rectangle2Mod()函数就出现了这个问题。
当roi没有改变位置时,右键确定就会报“超出索引范围”。
解决方法如下图红线处,增加数组元素判定,抛出异常。在调用方处理一下。
这个修正将在netMarketing类库v1.3.0中应用。

