精华内容
下载资源
问答
  • 一、问题描述 同学偶然问我问题,怎么画出一个轮廓的中心轮廓。...细化算法干的事呢就是画出轮廓的中心线~ 得到图中虚线的那一条。 二、学习链接 https://answers.opencv.org/question/31908/ho...

    一、问题描述

    同学偶然问我问题,怎么画出一个轮廓的中心轮廓。然后我回去查了一下,其实发现这个其实有专门的算法叫做细化算法。在OCR文字提取并描绘出来中非常常见。现在大致分享一下我查到的一些比较关键的内容及放上几个我参考的链接。
    细化算法干的事呢就是画出轮廓的中心线~ 得到图中虚线的那一条。
    在这里插入图片描述
    在这里插入图片描述

    二、学习链接

    https://answers.opencv.org/question/31908/how-do-i-detect-the-centerline-of-an-object/ 这个是一个大神源代码实现

    https://docs.opencv.org/3.2.0/df/d2d/group__ximgproc.html 这个呢是OpenCV的拓展库实现

    https://www.youtube.com/watch?v=iOtodmhfMfU 这个是YouTube上的大神实例,下面有附赠代码链接

    三、总结

    在实际工程项目中呢,我们总会遇到很多问题是OpenCV基础算法没有的。除了在想能不能把复杂问题变为一般问题外(例如找曲线能不能变成找直线用霍夫变换等)还可以多上谷歌查一下。切记上谷歌一定要用英文关键字去搜索。其实我们遇到的很多问题GOOGLE上都有大神做到了,或者已经有了挺多成熟的算法,但是只是自己知识面比较浅薄而已~ 所以大家在工程中如果实在想不到怎么解决的时候可以多Google,解锁自己的搜索技能~ 因为想要准确的用英文表达自己的问题还是需要一定锻炼的。ヾ(◍°∇°◍)ノ゙

    四、算法详解

    这是我对该算法的具体分析:

    https://blog.csdn.net/weixin_40977054/article/details/96888371
    希望能帮助到各位~

    展开全文
  • 剪方格——深搜算法

    2020-03-11 16:08:11
    6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同。 如图:p1.png, p2.png, p3.png 就是可行的分割法。...根据三幅图可以发现剪出来的两个图形关于方格纸中心完全对称,而且剪出来的方格都是连...

    6x6的方格,沿着格子的边线剪开成两部分。
    要求这两部分的形状完全相同。
    如图:p1.png, p2.png, p3.png 就是可行的分割法。
    在这里插入图片描述
    试计算:
    包括这3种分法在内,一共有多少种不同的分割方法。
    注意:旋转对称的属于同一种分割法。
    请提交该整数,不要填写任何多余的内容或说明文字。

    答案:509

    解题思路:
    根据三幅图可以发现剪出来的两个图形关于方格纸中心完全对称,而且剪出来的方格都是连续的,所以最简单的减法就是,在方格纸中关于中心对称画一条线直至边界线,按着线剪出来的方格就是连续且完全对称的。
    那么就要建一个7*7的二维数组,中心(3,3),对剪过的的点以及中心对称的点标记。
    代码如下

    package test;
    public class CutSquare {
        static long count = 0L;//计数有多少种剪发法
        //一个6*6的方格纸对应为一个7*7的二维数组
        static boolean[][] vis = new boolean[7][7];//标记数组
    
        //进行深度优先搜索
        public static void dfs(int x, int y) {
            vis[x][y] = true;//出发点被标记访问过
            if (x == 0 || x == 6 || y == 0 || y == 6) {//剪到边界,计数加一,返回上一步
                count++;
                return;
            }
            for (int i = 0; i < 4; i++) {
                int dx = x;
                int dy = y;
                switch (i) {//一共有四种方向的剪法
                    case 0:
                        dy += 1;//向上剪
                        break;
                    case 1:
                        dy += -1;//向下剪
                        break;
                    case 2:
                        dx += 1;//向右剪
                        break;
                    case 3:
                        dx += -1;//向左剪
                        break;
                    default:
                        break;
                }
                if (!vis[dx][dy]) {
                    vis[dx][dy] = true;//剪到的坐标被标记
                    vis[6 - dx][6 - dy] = true;//中心对此点也被标记
                    dfs(dx, dy);//进入下一剪刀
                    //对边界点还原初始化
                    vis[6 - dx][6 - dy] = false;
                    vis[dx][dy] = false;
                } else
                    continue;
            }
        }
    
        public static void main(String[] args) {
            dfs(3, 3);//(3,3)是中心点
            System.out.println(count / 4);//考虑到4种旋转后的图形都是一样的
        }
    }
    
    
    展开全文
  • 方格分割(DFS搜索算法)

    千次阅读 2017-04-18 21:50:51
    6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同。如图:p1.png, p2.png, ...从图的中心点开始走一条路径,直至走到图的边界,再将这条边界中心对称到图的另一边,用剪刀沿着这两条边界剪则能够

    6x6的方格,沿着格子的边线剪开成两部分。
    要求这两部分的形状完全相同。

    如图:p1.png, p2.png, p3.png 就是可行的分割法。

    试计算:
    包括这3种分法在内,一共有多少种不同的分割方法。
    注意:旋转对称的属于同一种分割法。

    请提交该整数,不要填写任何多余的内容或说明文字。
    这里写图片描述这里写图片描述这里写图片描述

    从图的中心点开始走一条路径,直至走到图的边界,再将这条边界中心对称到图的另一边,用剪刀沿着这两条边界剪则能够剪出一样的两个图形,因为路径是对称的所以搜索结果的四分之一就是答案。这里用了DFS搜索的路径,效率还是比较好的。下面附上个人的代码。

    #include <iostream>
    #include <cmath>
    
    using namespace std;
    
    int n[8][8] = {0};
    bool visit[8][8];
    int COUNT = 0;
    int x[4] = {1, 0, -1, 0};
    int y[4] = {0, 1, 0, -1};
    
    void dfs(int i, int j)
    {
    
        if (i == 7 || i == 1 || j == 7 || j == 1)
        {
            COUNT++;
            return;
        }
    
        for (int step = 0; step < 4; step++)
        {
            if (visit[i + x[step]][j + y[step]] == false)
            {
                int symmetry_i = abs(8 - i - x[step]);
                int symmetry_j = abs(8 - j - y[step]);
                visit[i + x[step]][j + y[step]] = true;
                visit[symmetry_i][symmetry_j] = true;
                dfs(i + x[step], j + y[step]);
                visit[i + x[step]][j + y[step]] = false;
                visit[symmetry_i][symmetry_j] = false;
            }
        }
    }
    
    int main()
    {
        visit[4][4] = true;
        dfs(4, 4);
        cout << "count: " << COUNT / 4 << endl;
        return 0;
    }
    展开全文
  • 文字版【完成标绿】: 数学基础 1.线性代数基础 一、基本知识 二、向量操作 三、矩阵运算 【2019.5月大学线代部分全部完成】 2.概率论基础 一、概率与分布 二、期望 三、方差 四、大数定律及...

    文字版【完成标绿】:

    数学基础

    1.线性代数基础

      • 一、基本知识
      • 二、向量操作
      • 三、矩阵运算
      • 2019.5月大学线代部分全部完成】

    2.概率论基础

      • 一、概率与分布
      • 二、期望
      • 三、方差
      • 四、大数定律及中心极限定理
      • 五、不确定性来源
      • 六、常见概率分布
      • 七、先验分布与后验分布
      • 八、测度论
      • 九、信息论
      • 2019.6月大学概率论部分全部完成】

    3.数值计算基础

      • 一、数值稳定性
      • 二、Conditioning
      • 三、梯度下降法
      • 四、海森矩阵
      • 四、牛顿法
      • 五、拟牛顿法
      • 六、约束优化
      • 【大二下学习过一次,待复习】

    4.常用函数

      • 一、 sigmoid
      • 二、 softplus
      • 三、Gamma 函数和贝塔函数
      • 【花时间系统学习】

    统计学习

    0.机器学习简介

      • 一、基本概念
      • 二、监督学习
      • 三、机器学习三要素
      • 【理论知识待学习】

    1.线性代数基础

      • 一、线性回归
      • 二、广义线性模型
      • 三、对数几率回归
      • 四、线性判别分析
      • 五、感知机
      • 【理论知识待学习】

    2.支持向量机

      • 一、线性可分支持向量机
      • 二、线性支持向量机
      • 三、非线性支持向量机
      • 四、支持向量回归
      • 五、SVDD
      • 六、序列最小最优化方法
      • 七、其它讨论
      • 【理论知识待学习】

    3.朴素贝叶斯

      • 一、贝叶斯定理
      • 二、朴素贝叶斯法
      • 三、半朴素贝叶斯分类器
      • 四、其它讨论
      • 【理论知识待学习】

    4.决策树

      • 一、原理
      • 二、特征选择
      • 三、生成算法
      • 四、剪枝算法
      • 五、CART
      • 六、连续值、缺失值处理
      • 七、多变量决策树
      • 【理论知识待学习】

    5.knn

      • 一、k 近邻算法
      • 二、kd
      • 【理论知识待学习】

    6.集成学习

      • 一、集成学习误差
      • 二、Boosting
      • 三、Bagging
      • 四、集成策略
      • 五、多样性分析
      • 【理论知识待学习】

    7.梯度提升树

      • 一、提升树
      • 二、xgboost
      • 三、LightGBM
      • 【理论知识待学习,现在会使用python调用】

    8.特征工程

      • 一、缺失值处理
      • 二、特征编码
      • 三、数据标准化、正则化
      • 四、特征选择
      • 五、稀疏表示和字典学习
      • 六、多类分类问题
      • 七、类别不平衡问题

    9.模型评估

      • 一、泛化能力
      • 二、过拟合、欠拟合
      • 三、偏差方差分解
      • 四、参数估计准则
      • 五、泛化能力评估
      • 六、训练集、验证集、测试集
      • 七、性能度量
      • 七、超参数调节
      • 八、传统机器学习的挑战

    10.降维

      • 一、维度灾难
      • 二、主成分分析 PCA
      • 三、核化线性降维 KPCA
      • 四、流形学习
      • 五、度量学习
      • 六、概率PCA
      • 七、独立成分分析
      • 八、t-SNE
      • 九、LargeVis

    11.聚类

      • 一、性能度量
      • 二、原型聚类
      • 三、密度聚类
      • 四、层次聚类
      • 五、谱聚类

    12.半监督学习

      • 半监督学习
      • 二、半监督 SVM
      • 三、图半监督学习
      • 四、基于分歧的方法
      • 五、半监督聚类
      • 六、 总结

    深度学习【未学习】

    0.深度学习简介

      • 一、介绍
      • 二、历史

    1.机器学习基础

      • 一、基本概念
      • 二、点估计、偏差方差
      • 三、最大似然估计
      • 四、贝叶斯估计
      • 五、随机梯度下降
      • 七、传统机器学习的挑战
      • 八、低维流形

    2.深度前馈神经网络

      • 一、基础
      • 二、损失函数
      • 三、输出单元
      • 四、隐单元
      • 五、结构设计
      • 六、历史小记

    3.反向传播算法

      • 一、链式法则
      • 二、反向传播
      • 三、深度前馈神经网络
      • 四、实现
      • 五、应用
      • 六、自动微分

    4.正则化

      • 一、 基本概念
      • 二、 参数范数正则化
      • 三、 约束正则化
      • 四、 数据集增强
      • 五、 噪声鲁棒性
      • 六、 早停
      • 七、参数共享
      • 八、 dropout
      • 九、 稀疏表达
      • 十、 半监督学习与多任务学习
      • 十一、对抗训练
      • 十二、正切传播算法
      • 十三、 正则化和欠定问题

    5.最优化基础

      • 一、代价函数
      • 二、神经网络最优化挑战
      • 三、mini-batch
      • 四、基本优化算法
      • 五、自适应学习率算法
      • 六、二阶近似方法
      • 七、 共轭梯度
      • 八、优化策略和元算法
      • 九、参数初始化策略

    6.卷积神经网络

      • 一、卷积运算
      • 二、卷积层、池化层
      • 三、基本卷积的变体
      • 四、算法细节
      • 五、历史和现状

    7.循环神经网络

      • 一、RNN计算图
      • 二、循环神经网络
      • 三、长期依赖
      • 四、序列到序列架构
      • 五、递归神经网络
      • 六、回声状态网络
      • 七、LSTM 和其他门控RNN
      • 八、外显记忆

    8.工程实践指导原则

      • 一、性能度量
      • 二、默认的基准模型
      • 三、决定是否收集更多数据
      • 四、选择超参数
      • 五、调试策略
      • 六、示例:数字识别系统
      • 七、数据预处理
      • 八、变量初始化
      • 九、结构设计

    自然语言处理【了解】

    主题模型

      • 一、Unigram Model
      • 二、pLSA Model
      • 三、LDA Model
      • 四、模型讨论

    词向量

      • 一、向量空间模型 VSM
      • 二、LSA
      • 三、Word2Vec
      • 四、GloVe

    计算机视觉【未学习】

    图片分类网络

      • 一、LeNet
      • 二、AlexNet
      • 三、VGG-Net
      • 四、Inception
      • 五、ResNet
      • 六、SENet
      • 七、 DenseNet
      • 八、小型网络
      • 九、趋势

    工具

    CRF

    • CRF++
      • 一、安装
      • 二、使用
      • 三、Python接口
      • 四、常见错误

    Lightgbm【能够基本使用】

    • lightgbm使用指南
      • 一、安装
      • 二、调参
      • 三、进阶
      • 四、API
      • 五、Docker

    xgboost【能够基本使用】

    • xgboost使用指南
      • 一、安装
      • 二、调参
      • 三、外存计算
      • 四、 GPU计算
      • 五、单调约束
      • 六、 DART booster
      • 七、Python API

    scikit-learn

    1.预处理

      • 一、特征处理
      • 二、特征选择
      • 三、字典学习
      • 四、PipeLine

    2.降维

      • 一、PCA
      • 二、MDS
      • 三、Isomap
      • 四、LocallyLinearEmbedding
      • 五、FA
      • 六、FastICA
      • 七、t-SNE

    3.监督学习模型

      • 一、线性模型
      • 二、支持向量机
      • 三、贝叶斯模型
      • 四、决策树
      • 五、KNN
      • 六、AdaBoost
      • 七、梯度提升树
      • 八、Random Forest

    4.模型评估

      • 一、数据集切分
      • 二、性能度量
      • 三、验证曲线 && 学习曲线
      • 四、超参数优化

    5.聚类模型

      • 一、KMeans
      • 二、DBSCAN
      • 三、MeanShift
      • 四、AgglomerativeClustering
      • 五、BIRCH
      • 六、GaussianMixture
      • 七、SpectralClustering

    6.半监督学习模型

      • 一、标签传播算法

     

    Spark【未学习】

    1.基础概念

      • 一、核心概念
      • 二、安装和使用
      • 三、 pyspark shell
      • 四、独立应用

    2.rdd使用

      • 一、概述
      • 二、创建 RDD
      • 三、转换操作
      • 四、行动操作
      • 五、其他方法和属性
      • 六、持久化
      • 七、分区
      • 八、混洗

    3.dataframe使用

      • 一、概述
      • 二、SparkSession
      • 三、DataFrame 创建
      • 四、 DataFrame 保存
      • 五、DataFrame
      • 六、Row
      • 七、Column
      • 八、GroupedData
      • 九、functions

    4.累加器和广播变量

      • 一、累加器
      • 二、广播变量

    numpy

    numpy 使用指南

      • 一、 ndarray
      • 二、 ufunc 函数
      • 三、 函数库
      • 四、数组的存储和加载

    scipy【未学习】

    scipy 使用指南

      • 一、常数和特殊函数
      • 二、拟合与优化
      • 三、线性代数
      • 四、统计
      • 五、数值积分
      • 六、稀疏矩阵

    matplotlib【未学习】

    matplotlib 使用指南

      • 一、matplotlib配置
      • 二、 matplotlib Artist
      • 三、基本概念
      • 四、布局
      • 五、 Path
      • 六、 path effect
      • 七、坐标变换
      • 八、 3D 绘图
      • 九、技巧

    pandas

    pandas 使用指南

      • 一、基本数据结构
      • 二、内部数据结构
      • 三、下标存取
      • 四、运算
      • 五、变换
      • 六、数据清洗
      • 七、字符串操作
      • 八、聚合与分组
      • 九、时间序列
      • 十、DataFrame 绘图
      • 十一、移动窗口函数
      • 十二、数据加载和保存

     

     

    图片资料版

     

     

     

    展开全文
  • R语言与网站分析

    2014-09-05 15:31:55
    3.2 颜色以及文字/ 点/ 线参数的 设置 69 3.2.1 颜色 71 3.2.2 文字元素相关参数设置 76 3.2.3 点元素相关参数设置 77 3.2.4 线元素相关参数设置 79 3.3 低级绘图函数 80 3.3.1 引例 80 3.3.2 标题 81 3.3.3...
  • 在小说已经没落的时代里,文字可以被用于任何目的:政治宣传,商业广告,或者算法竞赛的背景。(全是胡扯)  首先题目的难度相对于我去年那场算是简单的了不少,没有特别难的题目,所有题目都
  • 3.5.2 指纹中心计算程序 115 3.5.3 计算有效区域 117 3.5.4 二维Gabor变换 118 3.5.5 归一化扇区 119 3.5.6 读取图像 120 3.5.7 旋转角度计算 121 第4章 指纹识别系统(下) 123 4.1 指纹图像的预处理...
  • 天正建筑 TS4.5

    2015-10-26 17:54:24
    62.[指向索引][剖切索引][引出标注][做法标注][文字图名][注标高]修改:将标高标注线的尾部点X值取整。 63.[引出标注]改错:对话框中“图中取词W...”改成“图中取词W <”。 64.[自动排版]改错:其中“N合成一行”...
  • MicroDraw图形控件

    热门讨论 2006-04-23 00:00:00
    3.关键点捕捉:支持起点,终点,中点,中心点,切点,交点,相线点,平行,垂直,延长线相交点; 计算功能:1.两点距离,几何长度,周长的计算;2.面积计算;3.角度计算;4.点是否在区域内;5.交点计算...
  • Inpaint是一个图片去水印软件,可以从您的图片中删除不想要的部分,如额外的线、人物、文字等。选定图片区域后 Inpaint 会进行自动擦除,同时 Inpaint 会根据附近图片区域! 可以设置图片处理后是覆盖源文件、更名...
  • 本书是第I卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java Web进行程序开发的各个方面的知识和技巧,主要包括Java Web编程基础、文件操作管理、图形图像与多媒体技术、窗体应用...
  • 本书是第I卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java Web进行程序开发的各个方面的知识和技巧,主要包括Java Web编程基础、文件操作管理、图形图像与多媒体技术、窗体应用...
  •  加密算法完全兼容AutoCAD,即ICAD和AutoCAD加密的图形文件可以双向存取。  2、发布(Publish)  创建单页或多页图形集以发布到一个单独的多页DWF文件。  3、图纸导出 PDF 功能  导出当前图形到 PDF...
  • 本书是第I卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用C#进行程序开发各个方面的知识和技巧,主要包括C#编程基础、Windows窗体、控件应用、文件操作、C#与Office高效开发、图形...
  • 本书是第I卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用C#进行程序开发各个方面的知识和技巧,主要包括C#编程基础、Windows窗体、控件应用、文件操作、C#与Office高效开发、图形...
  • 本书是第I卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用C#进行程序开发各个方面的知识和技巧,主要包括C#编程基础、Windows窗体、控件应用、文件操作、C#与Office高效开发、图形...
  • 本书是第I卷,本书以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Visual Basic进行程序开发各个方面的知识和技巧。主要包括基础知识、窗体界面设计、控件应用等。全书分6篇20章,共计600...
  • 本书是第I卷,本书以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Visual Basic进行程序开发各个方面的知识和技巧。主要包括基础知识、窗体界面设计、控件应用等。全书分6篇20章,共计600...
  • 留一些想要的新功能

    2020-12-26 06:56:23
    页面中心线处于文章中的第几个元素以及中心线所处位置占该元素的总高度的百分比,这样下来就比较准确了。</code></p> </li><li>内置的元素卡片,支持本站文章、Github、或者其他站点,参考 ...
  • 摄像头.zip

    2019-07-23 23:33:32
    中心线的正确提取是软件中最重要的一步。如果中线都没正确的处理那么几乎所有的都是错误的,起始行、边缘线、补线都是为正确的算出中线服务的。如果中线正确出来了,图像处理就完成了。接下来就是怎么让你舵机打角...
  • WPS 2000 强调以用户为中心这一特点,用 WPS 2000 编辑打印中文文档,从文字校对、纸张类型到打印方式都能满足国内用户对处理中文文档的需求。多种工具条和丰富的图文符号是各类技术人员制作专业资料的强劲工具。...
  • 视频会议系统(服务器端)

    热门讨论 2010-10-07 11:18:50
    高效的传输算法*通过独立自主研发的传输算法,系统可以适应从56K拨号上网到光纤等各类IP网络。传输以保证实时性为最高目标,在保证实时性的前提下尽量获取最大传输带宽,这样可以最大程度的保障会议的效果。良好的...
  • 高效的传输算法*通过独立自主研发的传输算法,系统可以适应从56K拨号上网到光纤等各类IP网络。传输以保证实时性为最高目标,在保证实时性的前提下尽量获取最大传输带宽,这样可以最大程度的保障会议的效果。良好的...
  • 在三维超声重建之前可以预先选择要重建的区域,这样可以使操作者不必在采集时过于强调探头位置的准确,感兴趣部位是否在图像中心,使采集过程更简单方便。同时可以在三维重建之前删除无效数据,使三维超声影像易于...
  • 本书是第I卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用ASP.NET进行程序开发的各种知识和技巧。主要包括ASP.NET技术基础、VS 2008环境搭建,还详细讲解了C#语言设计入门,然后从...
  • 本书是第I卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用ASP.NET进行程序开发的各种知识和技巧。主要包括ASP.NET技术基础、VS 2008环境搭建,还详细讲解了C#语言设计入门,然后从...
  • 本书是第I卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用ASP.NET进行程序开发的各种知识和技巧。主要包括ASP.NET技术基础、VS 2008环境搭建,还详细讲解了C#语言设计入门,然后从...

空空如也

空空如也

1 2 3 4
收藏数 70
精华内容 28
关键字:

文字中心线算法