python 多线程 实现端口扫描
# -*- coding: utf-8 -*-
#!/usr/bin/python2
from socket import *
import threading
lock = threading.Lock()
openNum = 0
def portScanner(host,port):
global openNum
try:
s = socket(AF_INET,SOCK_STREAM)
s.connect((host,port))
lock.acqu
c++ sort 类的一点区别
STL的sort()算法,数据量大时采用Quick Sort,分段递归排序,一旦分段后的数据量小于某个门槛,为避免Quick Sort的递归调用带来过大的额外负荷,就改用Insertion Sort。如果递归层次过深,还会改用Heap Sort。STL sort算法(以上三种算法的综合) -- Introspective Sorting(内省式排序)。 I)Sort函数包含在头文件为#include<algorithm>的c++标准库中! II)Sort函数有三个参数: (1)第一个是要排序的
VS2013 error C2664: “FILE *fopen(const char *,const char *)”: 无法将参数 1 从“LPCTSTR”转换为“const char *”
错误 1error C2664: “FILE *fopen(const char *,const char *)”: 无法将参数 1 从“LPCTSTR”转换为“const char *”f:\test\wukai_image_processing\wukai_image_processing\wukai_image_processingdoc.cpp145 1 WuKai_Image_Processing 2IntelliSense: "LPCTSTR" 类型的实参与 "const char
Visual Studio 2013下配置Opencv3.2 和CMAKE问题
1,opencv:比如:opencv-3.2.0-vc14.exe opencv-3.1.0.exe等。OpenCV3.2下载地址在这 里:http://opencv.org/opencv-3-2.html。 选择Windows自解压的那个连接点击进去即可下载OpenCV3.2的Windows版本。下载以后解压缩到指定目录即可。 2,opencv_contrib扩展模块下载地址,同样下载好之后先解压缩到指定目录即可。 https://github.com/opencv/opencv_contr
OpenCV,在图像中,直观显示HOG特征值
HOG特征提取算法的实现过程: 大概过程: HOG特征提取方法就是将一个image(你要检测的目标或者扫描窗口): 1)灰度化(将图像看做一个x,y,z(灰度)的三维图像); 2)采用Gamma校正法对输入图像进行颜色空间的标准化(归一化);目的是调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时可以抑制噪音的干扰; 3)计算图像每个像素的梯度(包括大小和方向);主要是为了捕获轮廓信息,同时进一步弱化光照的干扰。 4)将图像划分成小cells(例如6*6像素/cell); 5)统
OpenCV凸包凸缺陷检测
左边原图,右边结果。 右图中,蓝色线为凸包,凸缺陷的起始点为黑色点,凸缺陷的起始点为绿色点,凸缺陷的最深点为红色点(即边缘点到凸包距离最大点)。 void convexityDefects(InputArray contour, InputArray convexhull, OutputArray convexityDefects) convexityDefects 是存储 Vec4i 的向量(vector<varname>),函数计算成功后向量的大小是轮廓凸缺陷的数量,向量每个元素Vec4i
自适应阈值分割-积分图
双窗otsu,通两个不同尺寸的窗口实现阈值分割,然后把两个不同窗口的二值图像合并。 第一列为原图,otsu结果。第二列,3.bmp表示以3x3的窗口的内的Otsu自适应阈值分割效果图,其他图片以此类推。 随着窗口越大越接近原图的otsu结果。 不过局部自适应的阈值的缺点是算法时间花费比较大,而通过积分图可以减少阈值化的时间。 自适应阈值分割,主要解决全局阈值不适用光照不均图像的阈值分割,并可以在线性时间完成计算积分图像I(x,y),原图为f(x,y),过程为: 积分图计算完后,只需要要知道一个
awesome-object-detection
awesome-object-detection This is a list of awesome articles about object detection. Contents: R-CNN Fast R-CNN Faster R-CNN Light-Head R-CNN Cascade R-CNN SPP-Net YOLO YOLOv2 YOLOv3 SSD DSSD FSSD ESSD MDSSD Pelee R-FCN FPN RetinaNet MegDet DetNet ZS
win10 python 2.7 安装basemap(win10 无法安装 .net framework 3.5 0x80070057)
我在安装basemap时也绕了点路,这里简单总结下,也算为自己记录一下: 1. 前提是使用pip方法。 2. 命令处理器中,定位到pip所在的文件夹。使用pip install geos (python的basemap这个库是建立在geos中的) 3. 下载pyproj和basemap两个包,下载地址http://www.lfd.uci.edu/~gohlke/pythonlibs/(请下载合适的版本) 4. 使用pip先后安装pyproj和basemap即可。我在win10/Python27
OpenCV的Mat操作像素点
Mat数据结构,操作灰度图像像素点: int gray_value = (int) image.at<uchar>(i , j) ; 操作彩色图像像素点: int color_value = (int) image.at<Vec3b>(i , j) [k]; 说明: 其中gray_value中存放灰度值,image是读入的图像,i表示行,j表示列; color_value中存放彩色像素值,image是读入的图像,i表示行,j表示列,k表示通道,即R、G、B,取值范围为2、1、0.
InnoDB存储引擎的索引
一、InnoDB 索引概述 1. B+树索引 2. 全文索引 3. 哈希索引 哈希索引是自适应的,InnoDB 会根据表的使用自动生成哈希索引,不能人为的干预是否在一张表中生成哈希索引。 B+树索引是传统意义上的索引,也是目前关系型数据库中查找最常用和最有效的索引。B+树索引的构造类似于二叉树,根据键值迅速找到数据。另外,B+树并不能直接找到一个给定键值的具体行,B+树索引只是被查找数据行所在的页,然后数据库通过把页读到内存中进行查找,最后找到具体的数据。 二、B+树的索引
之前写回调地址做的笔记
from django.shortcuts import HttpResponse
from django.views.decorators.csrf import csrf_exempt
# Create your views here.
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger()
msg_success = {"result": 1, "suc
Java Exception 和Error
(事先声明:该文章并非完全是我自己的产出,更多的是我个人在看到资料后通过理解并记录下来,作为自己阅读后的一个笔记;我现在试图对自己多年工作中的知识点做一个回顾,希望能融会贯通) (此文参考<Java核心技术36讲>第二讲) Exception & Error Java的Exception和Error都继承了Throwable,且仅有Throwable类能被抛出(throw)和捕获(catch)。 Error是指正常情况下不会发现的,并且发现后无法恢复;此类错误不需要捕获,如:OutOfMemo
numpy meshgrid 和 mgrid 的两个简单实例和解析
numpy.meshgrid 和 numpy.mgrid 用于返回包含坐标向量的坐标矩阵. 当坐标矩阵为二维时, 可用于在图像变形时构建网格. 实例一 from __future__ import print_function
import numpy as np
grid_y1, grid_x1 = np.meshgrid(range(5), range(3))
grid_x2, grid_y2 = np.mgrid[0:3, 0:5]
# Two arrays are el
C语言扩展动态内存报错:realloc(): invalid next size: 0x0000000002365010 ***
晚上被这个内存扩展崩溃的问题折腾的有点崩溃,当答案揭晓的那一刻,恍然大悟,原来如此简单。 练习题目:输入一个字符串,根据字母进行排序,说白了就是一个简单的冒泡 #include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#define BUF_LEN 100
#define COUNT 5
int main(void)
{
char buf[BUF
CentOS7.0小随笔——指令基本操作(Part.A)
与其说是CentOS7.0的小随笔,说老实话,基本指令在每个发行版本的Linux中都基本上是一致的。 Part.A部分我们讲述以下四个方面:命令行界面与图形界面、Linux系统的关闭与重启、命令行帮助、导航类命令。 一、命令行界面与图形界面 Linux操作系统中存在着两种不同的操作方式:文本模式和图形模式 对于CentOS系统而言,如果安装选项选择的是最小安装或基本服务(basic service)安装,那么默认进入的是文本模式,且GUI组件并未连带安装(后续可以通过yum进行安装)。 tip
Leetcode 1029. 可被 5 整除的二进制前缀
1029. 可被 5 整除的二进制前缀 显示英文描述 我的提交返回竞赛 用户通过次数467 用户尝试次数662 通过次数477 提交次数1964 题目难度Easy 给定由若干 0 和 1 组成的数组 A。我们定义 N_i:从 A[0] 到 A[i] 的第 i 个子数组被解释为一个二进制数(从最高有效位到最低有效位)。 返回布尔值列表 answer,只有当 N_i 可以被 5 整除时,答案 answer[i] 为 true,否则为 false。 示例 1: 输入:[0,1,1]
输出:[tru
协程在Socket上的应用
Socket内部实现用的是多线程。 服务端 # coding=utf-8
import sys
import socket
import time
import gevent
from gevent import socket, monkey
monkey.patch_all()
def server(port):
s = socket.socket()
s.bind('0.0.0.0', port)
s.listen(500)
今日推荐
周排行