当前位置:网站首页>[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
边栏推荐
- C # use gdi+ to add text to the picture and make the text adaptive to the rectangular area
- PHP student achievement management system, the database uses mysql, including source code and database SQL files, with the login management function of students and teachers
- Histogram equalization
- Les différents modèles imbriqués de listview et Pageview avec les conseils de flutter
- Basic data types in golang
- 2022-2028 global protein confectionery industry research and trend analysis report
- 2022-2028 global special starch industry research and trend analysis report
- ASP. Net to access directory files outside the project website
- 百度研发三面惨遭滑铁卢:面试官一套组合拳让我当场懵逼
- Sort out the power node, Mr. Wang he's SSM integration steps
猜你喜欢

2022-2028 global small batch batch batch furnace industry research and trend analysis report

2022-2028 global strain gauge pressure sensor industry research and trend analysis report

Devop basic command

Custom type: structure, enumeration, union

法向量点云旋转

Svg image quoted from CodeChina

C language pointer classic interview question - the first bullet

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

How web pages interact with applets

H5 audio tag custom style modification and adding playback control events
随机推荐
On Multus CNI
2022-2028 global seeder industry research and trend analysis report
IIS configure FTP website
Golang defer
Hands on deep learning (III) -- Torch Operation (sorting out documents in detail)
pcl::fromROSMsg报警告Failed to find match for field ‘intensity‘.
Regular expression (I)
法向量点云旋转
Latex download installation record
Write a jison parser from scratch (2/10): learn the correct posture of the parser generator parser generator
Get the source code in the mask with the help of shims
7-17 crawling worms (15 points)
MySQL transaction mvcc principle
Are there any principal guaranteed financial products in 2022?
Write a jison parser from scratch (5/10): a brief introduction to the working principle of jison parser syntax
Kotlin set operation summary
Hands on deep learning (37) -- cyclic neural network
Summary of reasons for web side automation test failure
C # use gdi+ to add text with center rotation (arbitrary angle)
Hands on deep learning (38) -- realize RNN from scratch