当前位置:网站首页>[200 opencv routines] 218 Multi line italic text watermark
[200 opencv routines] 218 Multi line italic text watermark
2022-07-04 09:51:00 【Xiaobai youcans】
OpenCV routine 200 piece General catalogue
【youcans Of OpenCV routine 200 piece 】218. Multi line oblique text watermark
8.1 Add multi line italic text watermark
A watermark is a sign superimposed on an image 、 Signature 、 Text or pattern , Used to protect the copyright of images .
First, add an image or text on the black background to make a watermark , Reuse cv.addWeight function , The watermark is added to the original image by overlapping and mixing .
The watermark pattern or text area can also be used as a mask , Use cv.add Function to modify the pixel value of the mask area , Realize adding the watermark to the original image .
routine A4.10: Add a watermark to the image
# A4.10 Add a watermark to the image
img = cv.imread("../images/imgLena.tif", 1) # Load the original image
h, w = img.shape[0], img.shape[1]
# # Generate watermark pattern
# logo = cv.imread("../images/logoXupt.png", 0) # load Logo
# logoResize = cv.resize(logo, (100,100)) # Adjust the size of the picture
# grayMark = np.zeros(img.shape[:2], np.uint8) # Watermark black background
# grayMark[10:110,10:110] = logoResize # Generate watermark pattern
# Generate text watermark
mark = np.zeros(img.shape[:2], np.uint8) # Black background
for i in range(h//100):
cv.putText(mark, "youcans2022", (50,70+100*i), cv.FONT_HERSHEY_SIMPLEX, 1.5, 255, 2)
MAR = cv.getRotationMatrix2D((w//2,h//2), 45, 1.0) # rotate 45 degree
grayMark = cv.warpAffine(mark, MAR, (w,h)) # Rotation transformation , The default is black fill
# Add a watermark to the image 1
markC3 = cv.merge([grayMark, grayMark, grayMark])
imgMark1 = cv.addWeighted(img, 1, markC3, 0.25, 0) # Weighted addition image fusion
# Add a watermark to the image 2
imgMark2 = cv.add(img, 64, mask=grayMark) # Use the watermark pattern as a mask
plt.figure(figsize=(9, 6))
plt.subplot(221), plt.title("original"), plt.axis('off')
plt.imshow(cv.cvtColor(img, cv.COLOR_BGR2RGB))
plt.subplot(222), plt.title("watermark"), plt.axis('off')
plt.imshow(cv.cvtColor(markC3, cv.COLOR_BGR2RGB))
plt.subplot(223), plt.title("watermark embedded"), plt.axis('off')
plt.imshow(cv.cvtColor(imgMark1, cv.COLOR_BGR2RGB))
plt.subplot(224), plt.title("watermark embedded"), plt.axis('off')
plt.imshow(cv.cvtColor(imgMark1, cv.COLOR_BGR2RGB))
plt.tight_layout()
plt.show()


【 At the end of this section 】
Copyright notice :
[email protected] Original works , Reprint must be marked with the original link :(https://blog.csdn.net/youcans/article/details/125506829)
Copyright 2022 youcans, XUPT
Crated:2022-6-28
217. Mouse interaction to obtain polygon area
218. Multi line oblique text watermark
边栏推荐
- xxl-job惊艳的设计,怎能叫人不爱
- Dynamic address book
- 技术管理进阶——如何设计并跟进不同层级同学的绩效
- How can Huawei online match improve the success rate of player matching
- In the case of easyUI DataGrid paging, click the small triangle icon in the header to reorder all the data in the database
- pcl::fromROSMsg报警告Failed to find match for field ‘intensity‘.
- How can people not love the amazing design of XXL job
- C语言指针经典面试题——第一弹
- Normal vector point cloud rotation
- C language pointer classic interview question - the first bullet
猜你喜欢

JDBC and MySQL database

法向量点云旋转

Devop basic command

5g/4g wireless networking scheme for brand chain stores

Hands on deep learning (43) -- machine translation and its data construction

Summary of small program performance optimization practice

How does idea withdraw code from remote push

Pcl:: fromrosmsg alarm failed to find match for field 'intensity'

C # use ffmpeg for audio transcoding

2022-2028 global small batch batch batch furnace industry research and trend analysis report
随机推荐
Modules golang
ASP. Net to access directory files outside the project website
Exercise 7-2 finding the maximum value and its subscript (20 points)
什么是 DevSecOps?2022 年的定义、流程、框架和最佳实践
Hands on deep learning (44) -- seq2seq principle and Implementation
2021-08-11 function pointer
On Multus CNI
Deep learning 500 questions
华为联机对战如何提升玩家匹配成功几率
Luogu deep foundation part 1 Introduction to language Chapter 4 loop structure programming (2022.02.14)
Exercise 7-4 find out the elements that are not common to two arrays (20 points)
Exercise 8-7 string sorting (20 points)
Golang Modules
System. Currenttimemillis() and system Nanotime (), which is faster? Don't use it wrong!
How does idea withdraw code from remote push
Basic data types in golang
libmysqlclient. so. 20: cannot open shared object file: No such file or directory
Summary of small program performance optimization practice
Intelligent gateway helps improve industrial data acquisition and utilization
Les différents modèles imbriqués de listview et Pageview avec les conseils de flutter