Skip to content

Instantly share code, notes, and snippets.

View stoensin's full-sized avatar
🎯
Focusing

Joe Stone stoensin

🎯
Focusing
  • shenzhen university
  • shenzhen
View GitHub Profile
@stoensin
stoensin / ops
Created February 28, 2019 15:07
import tensorflow as tf
import numpy as np
##################################################################################
# Initialization
##################################################################################
# Xavier : tf.contrib.layers.xavier_initializer()
# He : tf.contrib.layers.variance_scaling_initializer()
# Normal : tf.random_normal_initializer(mean=0.0, stddev=0.02)
import tensorflow as tf
from scipy import misc
import numpy as np
import random, os
from tensorflow.contrib import slim
class ImageData:
def __init__(self, load_size, channels, augment_flag):
self.load_size = load_size
@stoensin
stoensin / KMP
Last active September 19, 2019 15:07
char st = "bacbababadababacambabacaddababacasdsd"; char pt = "ababaca"; KMP算法的核心,是一个被称为部分匹配表(Partial Match Table)的数组,"部分匹配值"就是"前缀"和"后缀"的最长的共有元素的长度; 用到的公式:[P向右移动位数 = 已匹配的字符数 - 对应的部分匹配值(pmt_value)] -- 原模式串子串对应的各个前缀后缀的公共元素的最大长度表为《最大长度表》,next 数组相当于“最大长度值” 整体向右移动一位,然后初始值赋为-1。意识到了这一点,你会惊呼原来next 数组的求解竟然如此简单:就是找出对称长度的前缀后缀,然后整体右移一位,初值赋为-1(当然,你也可以直接计算某个字符…
def kmp(st,pt):
# 传入一个母串和一个子串
if len(pt)==0:
return 0
if len(st)==0:
return -1
# 生成next数组
next=[-1]*len(pt)
@stoensin
stoensin / max-min
Last active December 11, 2019 10:18
小顶堆解决思路: 小顶堆维护当前扫描到的最大K个数,其后每一次的扫描到的元素, 若大于堆顶,则入堆,然后删除堆顶; 依此往复,直至扫描完所有元素
def partition(seq):
pi, seq = seq[0], seq[1:]
lo = [x for x in seq if x <= pi]
hi = [x for x in seq if x > pi]
return lo, pi, hi
def selectmax(seq, k):
lo, pi, hi = partition(seq)
m = len(lo)
import os
import re
import sys
import json
import time
import random
import requests
from hashlib import md5
from pyquery import PyQuery as pq
from multiprocessing.dummy import Pool
@stoensin
stoensin / FILTER
Created February 28, 2019 15:13
均值滤波器:在滑窗的过程中,计算窗口内像素的平均值,用这个平均值来代替锚点的像素值,遍历过后,图像的纹理信息减弱,噪声减弱,图像变得平滑。 高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。 中值滤波在图像处理中,常用于保护边缘信息,是经典的平滑噪声的方法。 双边滤波器能够在平滑图像(降噪)的同时,还能保留明显的边缘信息.ps的磨皮、人物卡通化都是通过双边滤波实现的
import cv2
import numpy as np
image = cv2.imread('./trex.png')
image_blur = np.hstack( # 均值滤波器结果图像的水平拼接
[cv2.blur(image, (3, 3)), # kernel_size为3×3
cv2.blur(image, (5, 5)),
cv2.blur(image, (7, 7))] # 能够看到图像变得越来越模糊
)
cv2.imwrite('blur_of_diff_size.jpg', image_blur)
@stoensin
stoensin / all
Last active May 5, 2019 15:23
冒泡、选择、插入、希尔、归并、计数、快排
class ALG(object):
def __init__(self,list):
self.list=list
#冒泡
def bubble_sort(nums):
n =len(nums)
for i in range(n - 1):
for j in range(n-1 - i):
if nums[j+1] < nums[j]:
nums[j], nums[j + 1] = nums[j + 1], nums[j]
@stoensin
stoensin / FBNQ
Last active June 11, 2019 10:56
斐波那契数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... 如果设F(n)为该数列的第n项(n∈N*),那么这句话可以写成如下形式::F(n)=F(n-1)+F(n-2) 显然这是一个线性递推数列
def fib_iter(n):
pre,next = 1, 1
result = 0
i = 2
while i < n:
result = pre + next
pre,next= next,result
i += 1
return result
@stoensin
stoensin / SAVE
Last active March 7, 2019 04:25
opencv图像常规修改
import numpy as np
import cv2
img = cv2.imread('X.jpg',0)
cv2.imshow('image',img)
k = cv2.waitKey(0)
k = cv2.waitKey(0) & 0xFF # 64位机器
if k == 27: # 按下esc时,退出
cv2.destroyAllWindows()
elif k == ord('s'): # 按下s键时保存并退出
import os
import time
from functools import reduce
from threading import Thread
from PIL import Image
class MosaicMaker(object):
# 内部类,执行多线程拼图的任务类
class __SubTask: