opencv学习笔记(四)

来源:互联网 发布:sql utf8编码转换gbk 编辑:程序博客网 时间:2024/05/29 04:20

Arithmetic Operation on Images

import cv2import numpy as npx = np.uint8([250])y = np.uint8([10])print(cv2.add(x,y)) # saturated operationprint(x+y) # modulo operation

Image Blending

import cv2import numpy as npimg1 = cv2.imread('lena_std.tif')img2 = cv2.imread('Peppers.tif')dst = cv2.addWeighted(img1,0.5,img2,0.5,0)cv2.imshow('dst',dst)cv2.waitKey(0)cv2.destroyAllWindows()

Bitwise Operations

import cv2import numpy as npimg1 = cv2.imread('messi5.jpg')img2 = cv2.imread('opencv-logo-white.png')# put logo above an image, want it to be opaque# create a ROIrows,cols,channels = img2.shaperoi = img1[0:rows,0:cols]cv2.imshow('roi',roi)cv2.waitKey(0)cv2.destroyAllWindows()# create a mask of logo and create its inverse mask alsoimg2gray = cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)  # ?cv2.imshow('img2gray',img2gray)cv2.waitKey(0)cv2.destroyAllWindows()ret,mask = cv2.threshold(img2gray,10,255,cv2.THRESH_BINARY)cv2.imshow('mask',mask)cv2.waitKey(0)cv2.destroyAllWindows()mask_inv = cv2.bitwise_not(mask)cv2.imshow('mask_inv',mask_inv)cv2.waitKey(0)cv2.destroyAllWindows()# now black-out the area of logo in ROIimg1_bg = cv2.bitwise_and(roi,roi,mask = mask_inv)cv2.imshow('img1_bg',img1_bg)cv2.waitKey(0)cv2.destroyAllWindows()# take only region of logo from logo imageimg2_fg = cv2.bitwise_and(img2,img2,mask = mask)cv2.imshow('img2_fg',img2_fg)cv2.waitKey(0)cv2.destroyAllWindows()# put logo in ROI and modify the main imagedst = cv2.add(img1_bg,img2_fg)cv2.imshow('dst',dst)cv2.waitKey(0)cv2.destroyAllWindows()img1[0:rows,0:cols] = dstcv2.imshow('res',img1)cv2.waitKey(0)cv2.destroyAllWindows()
原创粉丝点击