col

图像处理――(源)均值滤波(blue)、高斯滤波(GaussianBlue)函数编程实现

匿名 (未验证) 提交于 2019-12-02 23:48:02
1 #include <opencv2/opencv.hpp> 2 #include <opencv2/core/core.hpp> 3 #include <opencv2/highgui/highgui.hpp> 4 #include <iostream> 5 #include <stdlib.h> 6 using namespace cv ; 7 using namespace std ; 8 9 10 void MeanFilter_my1 ( const Mat & src , Mat & dst , int ksize ) //均值滤波 11 { 12 CV_Assert ( ksize % 2 == 1 ); 13 14 int * kernel = new int [ ksize * ksize ]; 15 for ( int i = 0 ; i < ksize * ksize ; i ++) 16 kernel [ i ] = 1 ; 17 Mat tmp ; 18 int len = ksize / 2 ; 19 tmp . create ( Size ( src . cols + len , src . rows + len ), src . type ()); //添加边框 20 dst . create ( Size ( src . cols , src .

【BZOJ2654】tree【二分】【最小生成树】

匿名 (未验证) 提交于 2019-12-02 23:47:01
题目描述 给你一个无向带权连通图,每条边是黑色或白色。让你求一棵最小权的恰好有need条白色边的生成树。题目保证有解。 输入格式 第一行V,E,need分别表示点数,边数和需要的白色边数。 接下来E行,每行s,t,c,col表示这边的端点(点从0开始标号),边权,颜色(0白色1黑色)。 输出格式 一行表示所求生成树的边权和。 V<=50000,E<=100000,所有数据边权为[1,100]中的正整数。 样例 样例输入 2 2 1 0 1 1 1 0 1 2 0 样例输出 2 数据范围与提示 原数据出错,现已更新 by liutian,但未重测---2016.6.24 题解: 我们要求一个最小生成树,树中必须恰好包含need条边 在常用的kruskal算法中,一旦边权确定,黑白边就是等价的,但我们要找恰好need条边,所以要让白边尽可能的“突出”。 想让白边“突出”,只能给白边改权值。 设用当前的权值求出的最小生成树所含有的白边>need,我们要减少白边数量,就要给每个白边加权值;小于need,要增加白边数量,给白边减权值(加上一个负权)。 那真正的权值怎么求? 我们在kruskal中记录白边个数, 白边个数>=need时更新权值 :ans=ans-mid×need 一定是 白边个数>=need时更新权值,博主在这里卡了半天。 具体原因博主也是看的大佬的题解,现给出大佬的解释:

图像处理---《获取图像的像素指针、像素范围的处理、掩膜应用》

匿名 (未验证) 提交于 2019-12-02 23:43:01
图像处理---《图片的掩膜处理-->提高图像的亮度》   学习:针对一张图片,(1)如何获取图像的像素指针、(2)像素范围的处理、(3)掩膜应用 /*************************************************************************************** 作者:@WP20190612环境:VS2010 + OpenCV2.4.3 功能:掩膜操作---提高图像的对比度 说明: 知识1:获取图像的像素指针 CV_Assert(myImage.depth()==CV_8U); Mat.ptr<uchar>(int i=0); 获取像素矩阵的指针,索引i表示第几行,从0开始计数 const uchar* current=myImage.ptr<uchar>(row); 获取当前行的指针 p(row, col)=current[col]; 获取当前像素点p(row, col)的像素值 要点---要明确哪个像素指针可以调整,哪里不可以调整 知识点2: 像素范围的处理 saturate_cast<uchar>, 确保RGB值 范围在0~255之间。 saturate_cast<uchar>(-100) 返回0; saturate_cast<uchar>(288) 返回255; saturate_cast<uchar>(100)

扫雷小游戏-网页版

匿名 (未验证) 提交于 2019-12-02 23:43:01
这两天在恶补前端的相关知识,看到JQuery的动画部分时,突然心血来潮想做一个扫雷的网页版,于是花了一整天的时间完成了一个初始版本,很多算法赶时间,JS数据结构还不熟练,所以代码还比较粗糙,权当对这几天学习成果的一个回顾,若有更好实现方式可留言一起讨论。 先看看最后实现的效果: 一、知识点介绍 1. Html + CSS + JQuery库 要创建界面UI,所以需要用到各类Html标签还有CSS的布局美化。 要实现各类逻辑功能,所以需要用到JQuery的选择器、事件等知识。 2. 扫雷游戏的玩法 翻开某个格子,如果是雷,那么就会Boom,游戏结束。 如果是空白,则代表以这个格子为中心的九宫格范围内没有雷。 如果是数字,则根据数字代表这个格子为中心的九宫格范围内存在多少颗雷。 正确标记出所有的雷,并翻开多余的格子,则游戏胜利。 二、关键代码说明 1. 创建数据地图,接下来只需要根据数据地图创建对应UI就可以了。 function createMap () { //初始化为0 for ( var i = 0 ; i < num ; i ++) { map [ i ] = new Array (); mark [ i ] = new Array (); for ( var j = 0 ; j < num ; j ++) { map [ i ][ j ] = 0 ; mark [ i ][

布线问题-分支限界法

匿名 (未验证) 提交于 2019-12-02 23:43:01
2019独角兽企业重金招聘Python工程师标准>>> 问题描述:   印刷电路板不限区域划分成n*m个方格阵列。如下图所示   精确的电路布线问题要求确定连接方格a的中点,到连接方格b的中点的最短布线方案。   布线时,电路只能沿直线或直角布线。为了避免线路相交,已布的线的方格做了封锁标记,其他线路不允许穿过被封锁的方格。 分支限界法的解决方案:    首先 , 从起始位置a开始,将它作为第一个扩展结点。与该节点相邻,并且可达的方格成为可行结点被加入到活节点队列中,并且将这些方格标记为1.     即从起始方格a到这些扩展方格距离为1.    然后 , 从活节点队列中取出队首结点作为下一个扩展结点,并将于当前扩展结点相邻且为未标记过的方格标记为2,并存入或节点队列。    最后 , 这个过程一直到算法搜索到目标方格b或活结点队列为空时截止。 实现方案:   初始定义position,私有变量row,col,显示方格 行 列。   grid[i][j]表示方格阵列的 0 : 开放, 1 :封锁。      2个方格相同,则不必计算,直接返回最小距离。     否则,设置方格围墙,初始化位移矩阵offset。     表示距离时,0,1已经使用,直接从2开始。因此所有距离最后都要减2.  算法描述    bool FindPath ( Position start ,

11.2 DataFrame操作,集合转换

匿名 (未验证) 提交于 2019-12-02 22:56:40
SparkConf conf = new SparkConf().setAppName("DataFrameOps").setMaster("local"); JavaSparkContext sc = new JavaSparkContext(conf); /** * 若想使用SparkSQL必须创建SQLContext 必须是传入SparkContext 不能是SparkConf */ SQLContext sqlContext = new SQLContext(sc); /** * 创建一个本地的集合 集合中元素的格式 json 类型String */ List<String> nameList = Arrays.asList( "{'name':'zhangsan', 'age':55}", "{'name':'lisi', 'age':30}", "{'name':'lisisi', 'age':30}", "{'name':'wangwu', 'age':19}"); List<String> scoreList = Arrays.asList( "{'name':'zhangsan','score':100}", "{'name':'lisi','score':99}" ); /** * 并行化成一个rdd 现在rdd中元素格式 json格式 */ JavaRDD

回滚莫队——不知道为什么起这个名字的莫队

烂漫一生 提交于 2019-12-02 22:53:27
有多少人跟我一样看成了滚回莫队的举个爪 先放一道例题: \(JOIAT1219\) 歴史の研究 题意:设 \(Cnt_i\) 为 \(l\sim r\) 这个区间 \(i\) 出现的次数,有 \(m\) 次询问,求 \(l\sim r\) 的 \(max\{Val_i*Cnt_i\}\) 。 直接考虑莫队,因为要统计一种元素出现的个数。 我们发现,增加操作很好做,但是删除时就无法维护 \(max\) 了,这时我们考虑维护答案尽量不用删除操作。 接下来就是我们的回滚莫队了。 先分块,再排序。如果 \(x.l==y.l\) ,按 \(x.r<y.r\) 排序,否则按 \(x.l,y.l\) 所在的块升序排序。 将每个块分开处理,如果一个询问两端都在块中间,直接暴力即可。 我们接下来就要处理一段在块中间一段不在的询问了。 设 \(l=R[T]+1,r=R[T]\) ( \(T\) 为当前块)显然右端点是单调递增的,直接跑就可以了,全部都是增加操作。 左端点怎么办?它是无序的啊。。。 没事儿,我们先通过增加让左端点到当前询问的 \(l\) (这个过程中维护答案),再用删除操作使之回到 \(R[T]+1\) 即可(这个过程中不维护答案,仅处理信息)。 这样我们就做完了,撒花~ #include<bits/stdc++.h> using namespace std; #define int

python 操作excel实现替换特定内容

匿名 (未验证) 提交于 2019-12-02 22:51:30
本文介绍使用python语言,借助openyxl库来实现操作excel(xlsx)文件,实现替换特定内容的需求。 目前实现了3个小功能: 1. 全字匹配替换(mode1);(如:全字匹配 yocichen , 替换成为 yoci X chen ) 2. 部分字符匹配替换(mode2);(如:thisis yoci blog,替换成为 thisis yocichen blog) 3. 全字匹配填充(mode3);(如: yoci ,替换成为 yoci: a foolish ),用于在字符后面添加字符 源码: 1 import openpyxl 2 import re 3 import traceback 4 5 changeCells = 0 6 7 # replace the special content 8 """ 9 file: file path : str 10 mode: type of the operatoration : int 11 text: the string need to be replaceed : int or str 12 replaceText: replacement Text : int or str 13 """ 14 def changeData(file, mode, text, replaceText): 15 # load the

python之处理excel表格

匿名 (未验证) 提交于 2019-12-02 22:51:30
xlrd 安装xlrd pip install xlrd excel结构分析 常用函数 import xlrd # 读取文件 work_book = xlrd.open_workbook("/Users/jerry/Desktop/公司机密数据.xlsx") # 选取一个表 # 获取所有所有表格名称 print(work_book.sheet_names()) # 选择第2个 索引从0开始 sheet = work_book.sheet_by_index(1) # 表格名称 print(sheet.name) # 行数 print(sheet.nrows) # 列数 print(sheet.ncols) #批量读取行数据 # 取出第6行的全部内容包含数据类型 print(sheet.row(6)) # 取出第6行的内容包含数据类型 从第3列开始获取 print(sheet.row_slice(6,start_colx=3)) # 取出第6行的内容包含数据类型 从第3列开始获取 print(sheet.row_slice(6,start_colx=4,end_colx=5)) # 获取该行所有数据类型 一数字表示 # print(sheet.row_types(6)) # print(sheet.row_values(6)) # 单元格的处理 print(sheet.cell(0,0

Python的for循环与while语句

匿名 (未验证) 提交于 2019-12-02 22:11:45
1.for循环语句 for 循环使用的语法: for 变量 in range(10): 循环需要执行的代码 else: 全部循环结束后要执行的代码 (1) 求1~100之和 for(i=1;i<=100;i++) sum = 0 for i in range(1,101): #sum = sum +i sum += i print(sum) (2)求1~100的奇数之和 sum = 0 for i in range(1,101,2): sum += 1 print(sum) (3) 求1~100的偶数只和 sum = 0 for i in range(2,101,2): sum +=i print(sum) (4)用户输入一个数字,求该数的阶乘:3!=3 2 1 num = int(input('Num:')) res = 1 for i in range(1,num+1): res = res * i print('%d的阶乘的结果为:%d' %(num,res)) 用户登陆程序 1.输入用户名和密码 2.判断用户名和密码是否正确('name==root','passwd='westos') 3.为了防止暴力破解,登陆次数仅有三次,如果超过三次机会,报错 for i in range(3): #0 1 2 name = input('用户名:') passwd = input(