简易答题卡识别
参考自:Bubble sheet multiple choice scanner and test grader using OMR, Python and OpenCV
一个简易的答题卡识别与分数判断小程序
修改说明:
1.不import imutils库,直接找mutils的源码,复制需要的函数的源码过来,分析算法原理
2.在jupter notebook中测试,可以方便地分阶段测试
引入必要的库1234567import numpy as npimport cv2import matplotlibimport matplotlib.pyplot as plt# Allow image embeding in notebook%matplotlib inline
定义需要的函数4边形4点排序函数123456789101112131415161718# ----------------------------------------------------------------------# 【4边形4点排序函数】# 输入:4边形任意顺序的4个顶点# 输出:按 ...
交通标识分类-TensorFlow实现
翻译自:waleedka/traffic-signs-tensorflow交通标识分类-tensorflow实现
首先引入必要的库
1234567891011import osimport randomimport skimage.dataimport skimage.transformimport matplotlibimport matplotlib.pyplot as pltimport numpy as npimport tensorflow as tf# Allow image embeding in notebook%matplotlib inline
数据集解析数据目录结构:
12/traffic/datasets/BelgiumTS/Training//traffic/datasets/BelgiumTS/Testing/
训练集和测试集下分别有 62 个子目录,名字为 00000 to 00061。目录的名称代表从0到61的标签,每个目录中的图像代表属于该标签的交通标志。图片的存储格式为 .ppm 格式, 可以使用skimage library读取。
1234 ...
给网站添加CNZZ站点统计功能
首先去CNZZ/友盟注册个账号,在网页底端找到网站数据统计
点击立即使用
之后就是添加自己网站的信息了,下面的图是我已经添加过了,当然还可以继续添加其它站点
填写基本的添加信息
然后去修改jacman主题下的_config.yml文件,将cnzz_tongji设为true,并添加自己的cnzz账号的id,id是在注册完成cnzz后,浏览器的网址栏里可以看到自己的id。
123cnzz_tongji: enable: true siteid: 1277776467 ## e.g. 1253575964 your cnzz tongji site id
到这里基本上就完成了,jacman主题默认配置好了一种统计显示格式,这是可以先测试一下是否可用。
我是又改了一种显示方式,点获取代码,复制需要的格式代码
替换粘贴到themes->jacman->layout->_partical->analytics.ejs的倒数第2行(我用的是图片样式2)
123<% if (theme.cnzz_tongji.enable){ %> ...
使用swiftype实现站内搜索
通过swiftype可以实现自建的hexo网站的内部文章内容搜索。
添加Engine提供两种,一种网站内搜索,一种app内搜索,选择网站搜索,输入自己的网站地址,如我的为:随后还要填写一个名称,任意,我填的“xxpcbWebSearch”
预览与安装按照提示,点击PREVIEW按钮,可能比较慢,我没等它出来预览结果就选择Step2了Step2会有一些配置可以改,默认就好,最后会出来如下一段代码:注意图片中最后一行有个</script>不知什么原因没显示出来
配置hexo中的jacman主题_config.yml位于themes->jacman->_config.ym,末尾处,有谷歌百度等搜索方法,将其enable全设为false,并在最后添加两行:
12swift_search: enable: true
header.ejs位于位于themes->jacman->layout->_partical->header.ejs, 在40行左右有百度的搜索代码:
12345<% } else if(theme.baidu_ ...
查找算法笔记(C++版)
顺序查找时间复杂度:O(n)
代码:
12345678910//顺序查找int sequentialSearch(int* list, int n, int x){ for (int i = 0; i < n; i++) { if (list[i] == x) return i; } return -1;}
测试代码:
123456789101112131415int main(void){ int list[] = { 1,3,5,7,9,2,4,6,8,0 };//可以是无序数组 cout << "list[]:"; for (int i = 0; i < 10; i++) cout << list[i] << " "; cout << endl; int x = 8; int i = sequentialSearch(list, 10, x); if (i < 0) cout << ...
排序算法笔记(C++版)
注: ①第一个算法给出了完整的测试程序,其余的为避免重复及节省空间,只显示排序算法部分代码 ②运行结果的程序耗时每次运行略有不同,仅供大致对比参考
冒泡排序时间复杂度:O(n)[最好],O(n^2^)[平均],O(n^2^)[最差]空间复杂度:O(1)
代码:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657#include<iostream>#include<windows.h>//计时用using namespace std;//冒泡排序算法void bubbleSort(int data[], int n){ //打印原始数据信息 cout << "\n 待排序数据为:"; for (int i = 0; i < n; i++) cout << data[i] << " "; / ...