数值计算:
img = cv2.imread('img') + 10
即在原图像的矩阵上,对每一个像素进行+10操作,若出现 img = cv2.imread(img1 + img2),则此时相加结果超出了256的数值,再-256,相当于%256
在cv2.add(img1,img2)中,若相加的结果>255.则存储为255。
图像融合:
import cv2 import matplotlib.pyplot as plt img_handsome = cv2.imread('C:/Users/hellou/Desktop/beauty.jpg') img_girl = cv2.imread('C:/Users/hellou/Desktop/beautiful.jpg') print(img_girl.shape) print(img_handsome.shape) img_girl = cv2.resize(img_girl,(959,629)) #resize时,后面括号内的数值要倒过来 print(img_girl.shape) res = cv2.addWeighted(img_girl,0.4,img_handsome,0.6,0) #0.4和0.6分别表示图片比重,0代表偏置项n cv2.imshow('res_image',res) cv2.waitKey(0) cv2.destroyAllWindows()
在resize函数中:
res = cv2.resize(img,(0,0),fx=3,fy=1) 其中fx与fy后面的数值分别表示扩大/缩小至原来的多少倍数
边界填充:
1 #边界填充 2 import cv2 3 4 top_size,bottom_size,left_size,right_size = (50,50,50,50) 5 #分别表示顶部、底部、左边、右边四个方向上的边界拓宽值 6 7 img = cv2.imread('C:/Users/hellou/Desktop/forest.jpg') 8 replicate = cv2.copyMakeBorder(img,10,10,10,10,cv2.BORDER_REPLICATE) 9 reflect = cv2.copyMakeBorder(img,10,10,10,10,cv2.BORDER_REFLECT) 10 reflect101 = cv2.copyMakeBorder(img,10,10,10,10,cv2.BORDER_REFLECT_101) 11 warp = cv2.copyMakeBorder(img,10,10,10,10,cv2.BORDER_WRAP) 12 constant = cv2.copyMakeBorder(img,10,10,10,10,cv2.BORDER_CONSTANT) 13 #cv.BORDER_CONSTANT 添加一个恒定的彩色边框。该值应作为下一个参数value给出。\ 14 #cv.BORDER_REFLECT 边框将是边框元素的镜像反射,如下所示:fedcba|abcdefgh|hgfedcb 15 #cv.BORDER_REFLECT_101或者cv.BORDER_DEFAULT 与上面相同,但略有改动,如下所示: gfedcb | abcdefgh | gfedcba 16 #cv.BORDER_REPLICATE最后一个元素被复制,如下所示: aaaaaa | abcdefgh | hhhhhhh 17 #cv.BORDER_WRAP 不好解释,它看起来像这样: cdefgh | abcdefgh | abcdefg 18 19 cv2.imshow('img',img) 20 cv2.imshow('replicate',replicate) 21 cv2.imshow('reflect',reflect) 22 cv2.imshow('reflect101',reflect101) 23 cv2.imshow('warp',warp) 24 cv2.imshow('constant',constant) 25 26 cv2.waitKey(0)
图像阈值:
ret, dst = cv2.threshold(src, thresh, maxval, type)
src :输入图,只能输入单通道图像,通常来说为灰度图. dst :输出图
thresh :阈值
maxval :当像素值超过了阈值(或者小于阈值,根据 type 来决定),所赋予的值
type :二值化操作的类型
cv2.THRESH_BINARY | cv2.THRESH_BINARY_INV | cv2.THRESH_TRUNC | cv2. THRESH_TOZERO | cv2.THRESH_TOZERO |
超过阈值部分取maxval(最大值),否则取0 | cv2.THRESH_BINARY的反转 | 大于阈值部分设置为阈值,否则不变 | 大于阈值部分不改变,否则为0 | cv2.THRESG_TOZERO的反转 |
标签:10,阈值,img,imshow,cv2,笔记,学习,opencv,BORDER From: https://www.cnblogs.com/hellou/p/17489718.html