首页 > 其他分享 >基本操作之——Object比较

基本操作之——Object比较

时间:2024-03-07 09:23:03浏览次数:23  
标签:disp compare obj WindowHandle Object equal 基本操作 message 比较

* 此示例程序显示了运算符compare_obj的用法。
* 特别是,它显示了 compare_obj 和 test_equal_obj 之间的区别,compare_obj 比较对象的实际内容,而 test_equal_obj 比较图像和 XLD 在内存中的位置。
* compare_obj——比较实际内容是否一致
* test_equal_obj——比较内存地址是否一致(当为Region类型对象时,效果同compare_obj)

*compare_obj——比较相似内容过程中,通过设置参数epsilon来管控相似图像结果判断

dev_update_off ()
*
* 读取输入图像
read_image (Images, ['particle','particle','monkey'])
select_obj (Images, Image1, 1)
select_obj (Images, Image2, 2)
select_obj (Images, Image3, 3)
*
TextColor := ['red','green']
TestObjectIndices := [1,1,1,2,1,3]
*比较图像显示在一起
disp_compared_images (Images, TestObjectIndices, Row1, Column1, WindowHandle)
disp_message (WindowHandle, 'compare_obj compares images pixelwise.\ntest_equal_obj only checks the location in memory.', 'window', 12, 12, 'black', 'true')
*
*
* 测试同一对象是否相等
*test_equal_obj 和 compare_obj 的结果均为 1。
test_equal_obj (Image1, Image1, EqualObj)
compare_obj (Image1, Image1, 0, CompareObj)
disp_message (WindowHandle, 'test_equal_obj = ' + EqualObj, 'image', Row1[1] + 150, Column1[1] + 600, TextColor[EqualObj], 'false')
disp_message (WindowHandle, 'compare_equal_obj = ' + CompareObj, 'image', Row1[1] + 250, Column1[1] + 600, TextColor[CompareObj], 'false')
*
*
* 测试具有相同内容的两个不同对象。
* 运算符的结果不同。test_equal_obj返回两个对象位于内存中不同位置的信息,而compare_obj告诉用户图像内容是相同的。
test_equal_obj (Image1, Image2, EqualObj)
compare_obj (Image1, Image2, 0, CompareObj)
disp_message (WindowHandle, 'test_equal_obj = ' + EqualObj, 'image', Row1[3] + 150, Column1[3] + 600, TextColor[EqualObj], 'false')
disp_message (WindowHandle, 'compare_equal_obj = ' + CompareObj, 'image', Row1[3] + 250, Column1[3] + 600, TextColor[CompareObj], 'false')
*

* 测试具有不同内容的两个不同对象
test_equal_obj (Image1, Image3, EqualObj)
compare_obj (Image1, Image3, 0, CompareObj)
disp_message (WindowHandle, 'test_equal_obj = ' + EqualObj, 'image', Row1[5] + 150, Column1[5] + 600, TextColor[EqualObj], 'false')
disp_message (WindowHandle, 'compare_equal_obj = ' + CompareObj, 'image', Row1[5] + 250, Column1[5] + 600, TextColor[CompareObj], 'false')
*
disp_continue_message (WindowHandle, 'black', 'true')

 

 

 


stop ()
*
* For regions, both operators compare the content.
*
threshold (Image1, Region1, 128, 255)
threshold (Image1, Region2, 128, 255)
threshold (Image3, Region3, 210, 255)
concat_obj (Region1, Region2, Regions)
concat_obj (Regions, Region3, Regions)
disp_compared_regions (Regions, TestObjectIndices, Row1, Column1, WindowHandle)
disp_message (WindowHandle, 'For regions, the results of both operators are identical.', 'window', 12, 12, 'black', 'true')
*
* 测试同一区域对象是否相等
*test_equal_obj 和 compare_obj 的结果均为 1。
test_equal_obj (Region1, Region1, EqualObj)
compare_obj (Region1, Region1, 0, CompareObj)
disp_message (WindowHandle, 'test_equal_obj = ' + EqualObj, 'image', Row1[1] + 150, Column1[1] + 600, TextColor[EqualObj], 'false')
disp_message (WindowHandle, 'compare_equal_obj = ' + CompareObj, 'image', Row1[1] + 250, Column1[1] + 600, TextColor[CompareObj], 'false')
*
*
** 测试具有相同内容的两个不同区域对象。
* 对于区域Regions运算符的结果相同
*test_equal_obj和compare_obj均为结果1。
test_equal_obj (Region1, Region2, EqualObj)
compare_obj (Region1, Region2, 0, CompareObj)
disp_message (WindowHandle, 'test_equal_obj = ' + EqualObj, 'image', Row1[3] + 150, Column1[3] + 600, TextColor[EqualObj], 'false')
disp_message (WindowHandle, 'compare_equal_obj = ' + CompareObj, 'image', Row1[3] + 250, Column1[3] + 600, TextColor[CompareObj], 'false')
*
* 测试具有不同内容的两个不同对象,结果值为0
test_equal_obj (Region1, Region3, EqualObj)
compare_obj (Region1, Region3, 0, CompareObj)
disp_message (WindowHandle, 'test_equal_obj = ' + EqualObj, 'image', Row1[5] + 150, Column1[5] + 600, TextColor[EqualObj], 'false')
disp_message (WindowHandle, 'compare_equal_obj = ' + CompareObj, 'image', Row1[5] + 250, Column1[5] + 600, TextColor[CompareObj], 'false')
*
disp_continue_message (WindowHandle, 'black', 'true')
stop ()

 


*
* When comparing images (or XLDs) with compare_obj,
* small changes of the gray values of a pixel (or
* the row or column coordinates of the XLD points)
* are tolerated up to the value of the parameter
* Epsilon.
* 将图像(或 XLD)与compare_obj进行比较时,像素的灰度值(或 XLD 点的行或列坐标)的微小变化是可以容忍的,直到参数 Epsilon 的值。
add_noise_white (Image1, ImageNoise15, 15)
add_noise_white (Image1, ImageNoise30, 30)
concat_obj (Image1, ImageNoise15, ImagesNoise)
concat_obj (ImagesNoise, ImageNoise30, ImagesNoise)
disp_compared_images (ImagesNoise, TestObjectIndices, Row1, Column1, WindowHandle)
disp_message (WindowHandle, '当将图像与compare_obj进行比较时,使用参数 Epsilon 可以容忍微小的变化.', 'window', 12, 12, 'black', 'true')
*

*
* Compare similar but not identical images using Epsilon
*使用Epsilon参数比较相似,但内容不同图像
*
* a) 相同图像内容对象,epsilon值不同,结果反馈也是一致的
compare_obj (Image1, Image1, 0, CompareObjEps0)
compare_obj (Image1, Image1, 20, CompareObjEps20)
disp_message (WindowHandle, 'compare_equal_obj ', 'image', Row1[1] + 050, Column1[1] + 600, 'white', 'false')
disp_message (WindowHandle, ' with Epsilon = 0: ' + CompareObjEps0, 'image', Row1[1] + 150, Column1[1] + 600, TextColor[CompareObjEps0], 'false')
disp_message (WindowHandle, ' with Epsilon = 20: ' + CompareObjEps20, 'image', Row1[1] + 250, Column1[1] + 600, TextColor[CompareObjEps20], 'false')
*
* b) 图像内容有2015个灰度像素值差异;epsilon值为0表示不启用,反馈结果为0,存在差异
compare_obj (Image1, ImageNoise15, 0, CompareObjEps0)
compare_obj (Image1, ImageNoise15, 20, CompareObjEps20)
disp_message (WindowHandle, 'compare_equal_obj (Noise = 15):', 'image', Row1[3] + 050, Column1[3] + 600, 'white', 'false')
disp_message (WindowHandle, ' with Epsilon = 0: ' + CompareObjEps0, 'image', Row1[3] + 150, Column1[3] + 600, TextColor[CompareObjEps0], 'false')
disp_message (WindowHandle, ' with Epsilon = 20: ' + CompareObjEps20, 'image', Row1[3] + 250, Column1[3] + 600, TextColor[CompareObjEps20], 'false')
*
* b)图像内容有30个灰度像素值差异
compare_obj (Image1, ImageNoise30, 0, CompareObjEps0)
compare_obj (Image1, ImageNoise30, 20, CompareObjEps20)
disp_message (WindowHandle, 'compare_equal_obj (Noise = 30):', 'image', Row1[5] + 050, Column1[5] + 600, 'white', 'false')
disp_message (WindowHandle, ' with Epsilon = 0: ' + CompareObjEps0, 'image', Row1[5] + 150, Column1[5] + 600, TextColor[CompareObjEps0], 'false')
disp_message (WindowHandle, ' with Epsilon = 20: ' + CompareObjEps20, 'image', Row1[5] + 250, Column1[5] + 600, TextColor[CompareObjEps20], 'false')

 

 

 


*

标签:disp,compare,obj,WindowHandle,Object,equal,基本操作,message,比较
From: https://www.cnblogs.com/echo-efun/p/18057250

相关文章

  • 基本操作之——tuple增删查改操作
    1.tuple增加操作——tuple_insertOriginalTuple:=[0,1,2,3,4,5]*指定索引处插入一个元素tuple_insert(OriginalTuple,3,'x',InsertSingleValueA)*HDevelop执行同样操作InsertSingleValueB:=insert(OriginalTuple,3,'x') **指定索引处插入多个元素tuple_insert(Or......
  • 基本操作之——tuple类型
    *此示例演示如何使用运算符tuple_type,*tuple_is_int、tuple_is_real、tuple_is_string、*tuple_is_mixed和元素运算符*tuple_type_elem、tuple_is_int_elem、tuple_is_real_elem、*和tuple_is_string_elem。*此外,此示例还演示了如何使用强制转换(例如tuple_int)优化元组以加......
  • 记录一次WPF命令参数报错,InvalidCastException: T for DelegateCommand<T> is not an
    在使用WPF的时候对int或者bool类型进行绑定出现InvalidCastException:TforDelegateCommandisnotanobjectnorNullable.<ButtonWidth="200"Height="30"Content="按钮"Command="{BindingOpenCommand}"CommandParameter="{Binding......
  • java.lang.reflect.InaccessibleObjectException
    低版本springboot应用使用高版本JDK报以下异常:Causedby:java.lang.reflect.InaccessibleObjectException:Unabletomakeprotectedfinaljava.lang.Classjava.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)throwsjava......
  • 基本操作之——正则表达式
    1.定义*允许0次或多次重复+允许1次或多次重复?允许0次或1次重复{n,m}允许n到m次重复{n}允许n次重复^ 匹配字符串开头$ 匹配字符串结尾.匹配除换行符外所有字符2.事例*正则表达式基本操作tuple_regexp_match('abba','ab*',Match......
  • 在PowerShell中下载文件是一项常见的任务,可以通过多种方法完成。下面我将介绍使用Invo
    在PowerShell中下载文件是一项常见的任务,可以通过多种方法完成。下面我将介绍使用Invoke-WebRequest、New-Object和Start-BitsTransfer命令来下载文件的方法。使用Invoke-WebRequestInvoke-WebRequest是一个非常强大的命令,用于向网页发送HTTP和HTTPS请求。你可以使用它来下载文......
  • snappy压缩格式下使用数字与字符串不等于比较,hiveSQL和sparkSQL表现不一致的行为记录
    Hive版本:2.3.4Spark版本:2.4.0当时用Snappy格式对表进行压缩时,时用<>符号将字符串与数字进行比较会产生不一致的结果。SparkSQL结果并非预期结果。DROPTABLEIFEXISTStest.zero_test;CREATETABLEtest.zero_testTBLPROPERTIES("orc.compress"="SNAPPY")ASSELECT......
  • 基本操作之——Unicode编码
    自版本18.11后,支持UTF-81.字符转Unicode码tuple_ord('s',Ord)dev_clear_window()dev_disp_text('\'s\'的Unicode码为'+Ord,'window','center','center','black','box_color','#00ffffc0......
  • 基本操作之——字符截取操作
    *字符截取操作 String1:='abcdefghij'String2:='0123456'Message:='字符截取操作'Message[1]:='String1:=\'abcdefghij\''Message[2]:='String2:=\'0123456\''dev_clear_window()dev_disp_te......
  • 基本操作之——多维空间欧几里得距离距离计算及标量积计算
    dev_clear_window()dev_disp_text('欧几里得距离计算','window',200,200,'black','box_color','#00ffffc0')V1:=[18.8,132.4,33,19.3]dev_disp_text('V1='+V1,'window',220,200,'black',......