判断包含关系

//----------------------------------- 判断某个字符串是否包含某字符------------------------------------
    // 使用 includes() 方法
    // let str = "Helloworld!";
    // let charToFind = "a";

    // if (str.includes(charToFind)) {
    //   console.log(`字符串 "${str}" 包含字符 "${charToFind}"`);
    // } else {
    //   console.log(`字符串 "${str}" 不包含字符 "${charToFind}"`);
    // }
    // 使用 indexOf() 方法
    // let str = "Hello world!";
    // let char = "w";

    // if (str.indexOf(char) !== -1) {
    //   console.log(`字符串 "${str}" 包含字符 "${char}"`);
    // } else {
    //   console.log(`字符串 "${str}" 不包含字符 "${char}"`);
    // }
    // 使用正则表达式
    // let str = "Hello world!";
    // let char = "w";
    // let regex = new RegExp(char);
    // if (regex.test(str)) {
    //   console.log(`字符串 "${str}" 包含字符 "${char}"`);
    // } else {
    //   console.log(`字符串 "${str}" 不包含字符 "${char}"`);
    // }


    // ----------------------------判断数组是否包含某个字符串,或者多个个字符串-----------------------
    // 包含某个字符
    // let array = ["apple", "banana", "cherry"];
    // let stringToCheck = "banana";

    // if (array.includes(stringToCheck)) {
    //   console.log(`数组包含字符串 "${stringToCheck}"`);
    // } else {
    //   console.log(`数组不包含字符串 "${stringToCheck}"`);
    // }


    // containsAll(array, [stringToCheck1, stringToCheck2],调用方法的时候传入一个字段是包含某个字符,多个字段即是包含多个字符
    // let array = ["apple", "banana", "cherry"];
    // let stringToCheck1 = "banana";
    // let stringToCheck2 = "cherry";

    // function containsAll(arr, values) {
    //   return values.every(function (value) {
    //     return arr.some(function (arrValue) {
    //       return value === arrValue;
    //     });
    //   });
    // }

    // if (containsAll(array, [stringToCheck1, stringToCheck2])) {
    //   console.log(`数组同时包含字符串 "${stringToCheck1}" 和 "${stringToCheck2}"`);
    // } else {
    //   console.log(`数组不包含字符串 "${stringToCheck1}" 和 "${stringToCheck2}"`);
    // }



    //----------------------------- 判断数组中是否包含某对象-------------------------------
    // 使用 some() 方法比较对象引用
    // let array = [{ id: 1, name: "Alice" }, { id: 2, name: "Bob" }];
    // let objectToCheck = { id: 1, name: "Alice" };

    // let containsObject = array.some(item => item === objectToCheck);

    // console.log(containsObject); // 输出:false


    // 使用 some() 方法比较对象属性
    // let array = [{ id: 1, name: "Alice" }, { id: 2, name: "Bob" }];
    // let objectToCheck = { id: 1, name: "Alice" };

    // let containsObject = array.some(item => item.id === objectToCheck.id);

    // console.log(containsObject); // 输出:true 或 false,取决于是否有对象的 id 属性与 objectToCheck 的 id 相等


    // 使用 find() 方法
    // let array = [{ id: 1, name: "Alice" }, { id: 2, name: "Bob" }];
    // let objectToCheck = { id: 1, name: "Alice" };

    // let foundObject = array.find(item => item.id === objectToCheck.id);

    // console.log(!!foundObject); // 输出:true 或 false,取决于是否找到匹配的对象


    // 使用 filter() 方法
    // let array = [{ id: 1, name: "Alice" }, { id: 2, name: "Bob" }, { id: 1, name: "Alice" }];
    // let objectToCheck = { id: 1, name: "Alice" };

    // let matchingObjects = array.filter(item => item.id === objectToCheck.id);

    // console.log(matchingObjects.length > 0); // 输出:true 或 false,取决于是否找到匹配的对象

在Halcon中,可以使用`included`函数来判断两个区域之间的包含关系。该函数的语法如下: ``` included(Region1, Region2 : IsIncluded) ``` 其中,`Region1`和`Region2`分别表示需要比较的两个区域,`IsIncluded`是一个输出参数,表示是否包含的逻辑值。如果`IsIncluded`的值为`true`,则表示`Region1`包含`Region2`;如果`IsIncluded`的值为`false`,则表示`Region1`不包含`Region2`。 例如,下面的代码演示了如何使用`included`函数来判断两个blob之间的包含关系: ```Halcon read_image(Image, 'blob_image.jpg') threshold(Image, Region, 128, 255) // 连通区域分析 connection(Region, ConnectedRegions) select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', [100, 10000]) // 判断包含关系 gen_circle(Circle, 150, 150, 50) intersection(SelectedRegions, Circle, Intersection) included(SelectedRegions, Circle, IsIncluded) // 显示结果 disp_image(Image) set_color('red') disp_region(SelectedRegions) disp_region(Circle) if (IsIncluded) set_color('green') else set_color('blue') endif disp_region(Intersection) ``` 这个例子中,我们首先读入了一张图像,并使用`threshold`函数将其二值化。然后,我们使用`connection`函数对连通区域进行分析,并使用`select_shape`函数选择面积在100到10000之间的连通区域作为blob。接着,我们使用`gen_circle`函数创建了一个圆形区域,并使用`intersection`函数计算了圆形区域和blob之间的交集。最后,我们使用`included`函数判断了blob是否包含在圆形区域内,并使用`disp_region`函数显示了blob、圆形区域和它们之间的交集。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值