九色91_成人精品一区二区三区中文字幕_国产精品久久久久一区二区三区_欧美精品久久_国产精品99久久久久久久vr_www.国产视频

Hello! 歡迎來到小浪云!


圖像處理: 設計 自定義透明度 水印


效果圖

未加水印前:

圖像處理: 設計 自定義透明度 水印

水印掩碼:

圖像處理: 設計 自定義透明度 水印

透明度為 0.3 的水印圖片:

圖像處理: 設計 自定義透明度 水印

透明度為 1.0 的水印圖片:

圖像處理: 設計 自定義透明度 水印

我自己編寫的這段代碼,其效果似乎比opencv官網上的示例更好,因為水印中沒有夾帶黑色噪點。

代碼語言:JavaScript 代碼運行次數:0

# coding=utf-8 import cv2 import numpy as np <p>bottom = cv2.imread('elegent.jpg') mark = cv2.imread('mask.jpg')</p><h1>加水印</h1><p>def waterMark(src, mask, transparency):</p><h1>對掩碼:轉為float型 --> 乘上透明度 --> 地板整數 --> 回到uint8型</h1><pre class="brush:php;toolbar:false">mask = np.floor(mask.astype(np.float32) * transparency).astype(np.uint8) dst = cv2.add(src, mask) # 防止溢出像素值域 dst = dst * (dst <= 255) + 255 * (dst > 255) # 回到uint8型 dst = dst.astype(np.uint8) return dst

b_rows, b_cols, b_channels = bottom.shape m_rows, m_cols, m_channels = mark.shape

將圖片右下角矩形塊 替換為 加過水印的矩形塊

bottom[b_rows-m_rows:b_rows, b_cols-m_cols:b_cols, ] = waterMark(bottom[b_rows-m_rows:b_rows, b_cols-m_cols:b_cols, ], mark, 0.3)

保存水印圖片

cv2.imwrite(‘waterMark.jpg’, bottom) cv2.imshow(‘waterMark’, bottom) cv2.waitKey(3000) cv2.destroyAllWindows()

對比OpenCV官網上的類似例程:

圖像處理: 設計 自定義透明度 水印

具體代碼:

代碼語言:JavaScript 代碼運行次數:0

# coding=utf-8 import cv2</p><p>img1 = cv2.imread('elegent.jpg') img2 = cv2.imread('mask.jpg')</p><p>b_rows, b_cols, b_channels = img1.shape m_rows, m_cols, m_channels = img2.shape</p><h1>I want to put logo on top-left corner, So I create a ROI</h1><p>rows,cols,channels = img2.shape roi = img1[b_rows-m_rows:b_rows, b_cols-m_cols:b_cols, ]</p><h1>Now create a mask of logo and create its inverse mask also</h1><p>img2gray = cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY) ret, mask = cv2.threshold(img2gray, 10, 255, cv2.THRESH_BINARY) mask_inv = cv2.bitwise_not(mask)</p><h1>Now black-out the area of logo in ROI</h1><p>img1_bg = cv2.bitwise_and(roi,roi,mask = mask_inv)</p><h1>Take only region of logo from logo image.</h1><p>img2_fg = cv2.bitwise_and(img2,img2,mask = mask)</p><h1>Put logo in ROI and modify the main image</h1><p>dst = cv2.add(img1_bg,img2_fg)</p><h1>img1[0:rows, 0:cols ] = dst</h1><h1>將圖片右下角矩形塊 替換為 加過水印的矩形塊</h1><p>img1[b_rows-m_rows:b_rows, b_cols-m_cols:b_cols, ] = dst</p><p>cv2.imwrite('res.jpg', img1) cv2.imshow('res',img1) cv2.waitKey(0) cv2.destroyAllWindows()

該例程的實現效果:

圖像處理: 設計 自定義透明度 水印

劣勢:通過細節放大圖可以看出,OpenCV官網例程的效果較差,不僅無法自定義水印透明度,而且水印中還會夾帶黑色噪點,影響美觀:

圖像處理: 設計 自定義透明度 水印

相關閱讀

主站蜘蛛池模板: 一区二区三区视频在线免费观看 | 国产精品夜夜春夜夜爽久久电影 | 天天夜碰日日摸日日澡 | 免费视频一区二区 | 亚洲97 | 日本成人三级电影 | 日韩一区在线播放 | 狠狠亚洲 | 久久久久久99 | 亚洲精品免费观看 | 亚洲久久在线 | 国产一级一片免费播放 | 久草视频在线播放 | 久久综合国产 | 天天干天天玩天天操 | 国产精品一区二区不卡 | 国产在线观 | 日韩精品一区二区三区视频播放 | 婷婷精品 | 欧美精品日韩精品国产精品 | 成人在线国产 | 日本免费在线看 | 日韩精品久久久久久 | 在线国产一区 | 成人毛片视频免费 | www国产成人免费观看视频,深夜成人网 | 久久国产成人精品国产成人亚洲 | 99热国产精品 | 91精品亚洲 | 亚洲 中文 欧美 日韩 在线观看 | 国产一区二区三区在线视频 | 欧美日韩国产在线观看 | 99re热精品视频国产免费 | av在线一区二区三区 | 中文字幕精品视频 | 欧美视频一区二区三区 | 1000部精品久久久久久久久 | 亚洲一区二区三区四区五区午夜 | 国产二区av| 午夜影院普通用户体验区 | 国产精品久久久久久久久婷婷 |