IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 《计算机视觉工程师养成计划 》·数字图像处理·数字图像特征·链码 -> 正文阅读

[人工智能]《计算机视觉工程师养成计划 》·数字图像处理·数字图像特征·链码

定义

????????链码用于表示由顺次连接的具有指定长度和方向的直线断组成的边界线。典型的表示方法是根据链 斜率不同、有4链码或8链码。每一段(相邻两顶点的连线)的方向是用数字编号方法进行编码。从起点开始,沿边界编码,至起点被重新碰到,结束一个对象的编码。

举例

4链码:0-0-3-3-3-2-2-2-1-1-0-1

疑问

?(1)由于起点的不同,造成编码的不同怎么办?

? ? 方法:自然数最小归一化? ??

? ? 解释:如果链码表达的边界是封闭的,故链码是可循环的,如何按位平移得到的链码都是一样的。但是如果选取的起点不同,那么得到的链码也会有所不同。这时候我们就要将它归一化。原理就是把我们得到的链码看成是一个自然数,将链码循环写下去,选取构成的自然数最小的那组链码。这个就是归一化链码。当然自然数最大归一化也可。?

10103322

01033221 -- 构成的自然数最小 √

10332210???

03322101??????

33221010

32210103

22101033

21010332

10103322 -- end

代码实现:(待完善)

/*
* if a > b return true, else return false; 
*/
bool compare_chain(vector<int> a, vector<int> b)
{
    if (a.size() != b.size()) {
        return false;
    }
    if (a.size() == 0) {
        return true;
    }    

    for(int i = 0; i < a.size(); ++i) {
        if (a[i] > b[i]) {
            return true;
        }
        if (a[i] < b[i]) {
            return false;
        }
    } 
    return false; 
}

vector<int> chain_code_normalization(vector<int> src_chain) 
{
    int chine_len = src_chain.size();
    vector<int> nor_chain;
    vector<int> temp;
    temp.insert(temp.begin(), src_chain.begin(), src_chain.end());
    temp.insert(temp.begin() + chine_len, src_chain.begin(), src_chain.end());
    vector<int> a,b;
    a.assign(temp.begin(), temp.begin() + chine_len);
    for(int i = 1; i < src_chain.size(); i++) {
        b.assign(temp.begin() + i, temp.begin() + chine_len + i);
        if (compare_chain(a, b)) {
            a.assign(b.begin(), b.end());
        }
    } 
    nor_chain = a;
    return nor_chain;
}

(2) 由于角度的不同,造成编码的不同怎么办?

循环差分取:chain_code[i+1] - chain_code[i] + 模(4)) % 模(4)?

?

参考:《图像处理》第9章 目标表示与描述 - 我脑子不好 - 博客园 (cnblogs.com)

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-27 09:54:11  更:2021-11-27 09:54:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 3:51:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码