import cv2 #加载两幅图片 img1 = cv2.imread(r'C:\csc\22.jpg') #第一幅图片的路径 img2 = cv2.imread(r'C:\csc\33.png') #第二幅图片的路径 #把logo放在图像的左上角,创建ROT rows1,cols1, channels = img1.shape rows, cols, channels = img2.shape rol = img1[0:rows, 0:cols] #现在创建logo的掩码,并同时创建其相反掩码 img2gray = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY) ret, mask = cv2. threshold(img2gray, 240, 255, cv2.THRESH_BINARY) #mask背景依旧为白色,彩色logo是黑色 mask_inv = cv2.bitwise_not(mask) #现在将ROT中logo的区域涂黑 img1_bg = cv2.bitwise_and(rol, rol, mask = mask) #仅从logo图像中提取logo区域 img2_fg = cv2.bitwise_and(img2, img2, mask = mask_inv) #将logo放入ROT并修改主图像 dst = cv2.add(img1_bg,img2_fg) img1[0:rows,0:cols]= dst cv2.imshow('Result',img1) cv2.waitKey(0) cv2.destroyAllWindows()
时间: 2024-04-18 12:23:29 浏览: 121
这段代码是使用OpenCV库进行图像处理的示代码。首先,它加载了两张图片(img1和img2),然后将img2放置在img1的左上角位置。
接下来,代码通过使用灰度转换和阈值化操作创建了一个logo的掩码(mask),并生成了其相反的掩码(mask_inv)。
然后,代码将img1中与logo重叠的区域涂黑(img1_bg),并从img2中提取出logo的区域(img2_fg)。
最后,代码将logo放入img1并修改主图像(dst),并显示结果图像。
请注意,此段代码仅供参考,并需要根据实际需求进行适当的修改和调整。
阅读全文