opecv技巧函数
cv2.floodFill
cv2.floodFill(img,mask,seed,newvalue(BGR),(loDiff1,loDiff2,loDiff3),(upDiff1,upDiff2,upDiff3),flag)
- img:为待使用泛洪算法的图像
- mask:为掩码层,使用掩码可以规定是在哪个区域使用该算法,如果是对于完整图像都要使用,则掩码层大小为原图行数+2,列数+2.是一个二维的0矩阵,边缘一圈会在使用算法是置为1。而只有对于掩码层上对应为0的位置才能泛洪,所以掩码层初始化为0矩阵。
- seed:为泛洪算法的种子点,也是根据该点的像素判断决定和其相近颜色的像素点,是否被泛洪处理。
- newvalue:是对于泛洪区域新赋的值(B,G,R)
- (loDiff1,loDiff2,loDiff3):是相对于seed种子点像素可以往下的像素值,即seed(B0,G0,R0),泛洪区域下界为(B0-loDiff1,G0-loDiff2,R0-loDiff3)
- (upDiff1,upDiff2,upDiff3):是相对于seed种子点像素可以往上的像素值,即seed(B0,G0,R0),泛洪区域上界为(B0+upDiff1,G0+upDiff2,R0+upDiff3)
代码演示
import numpy as np
import cv2
if __name__ == "__main__":
img = cv2.imread(r"C:\Users\A\Desktop\1.jpg")
copyImg = img.copy()
img_h, img_w, _ = np.shape(img)
mask = np.zeros((img_h+2,img_w+2),dtype=np.uint8)
cv2.rectangle(mask, (50,50), (150,150),(255))
centerx = 100
centery = 100
cv2.floodFill(copyImg, mask, (100, 100), (0, 255, 255), (255, 255, 255), (255, 255, 255), cv2.FLOODFILL_FIXED_RANGE)
示例图片
cv2.guassian 和 cv2.Laplace 以及Laplacian of Gaussian (LoG)以及SIFT
参考博文:https://www.cnblogs.com/wangguchangqing/p/6407717.html
参考博文:https://docs.opencv.org/2.4/modules/imgproc/doc/filtering.html?highlight=laplace#cv.Laplace
参考博文:http://fourier.eng.hmc.edu/e161/lectures/gradient/node8.html
参考博文:https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_sift_intro/py_sift_intro.html#sift-intro