文章目錄
- 前言
- 一、具體程序
- 1、代碼思路
- 2、python完整代碼
- 3、代碼補充
- 二、結果
- 補充
前言

最近天氣好冷,感覺整個人都是冰冰的!程式員如何用python“表白”自己的女神呢?我想用最近學的影像處理知識,在照片上加隱藏字(手機正常瀏覽是一張照片,放大才可以看到里面的文字)
大家也可以用這個代碼去表白自己的物件呀,
一、具體程序
1、代碼思路
先用cv2中的imread方法讀取冰冰的照片,再用PIL的Image方法創建一個相同大小的影像(初始填充白色),最后在圖片上每一個塊加字,
2、python完整代碼
# -*- coding:utf-8 -*-
from PIL import Image, ImageDraw, ImageFont
import cv2
font_path='./font-family/MiNiJianPangWa-1.ttf'
def draw(image_path, draw_text):
img = cv2.imread(image_path)#讀取圖片檔案
img_temp = Image.new("RGB", [img.shape[1],img.shape[0]], "white")#以指定的模式和大小創建一個新影像(白色填充),img.shape[1]為像素大小
drawObj = ImageDraw.Draw(img_temp)#創建一個可以在給定影像上繪圖的物件,
n = 8#間隔大小
m = 8#字體大小
font = ImageFont.truetype(font_path,size = m)
for i in range(0, img.shape[0], n):#通過兩個for回圈,依次定位到每個文字所在的色塊
for j in range(0, img.shape[1], n):
drawObj.text([j, i],draw_text[int(j / n) % len(draw_text)],fill = (img[i][j][2], img[i][j][1],img[i][j][0]),font = font)
img_temp.save('img_' + image_path)
draw('bingbing.jpg', "都是冰冰的")#可以自己更改哦
3、代碼補充
font_path需要自己更改,可以去網上下載字體,我試過幾個字體,發現一個效果比較好,
百度網盤鏈接:https://pan.baidu.com/s/1e7zwvHgmr-90QH5j0vPGBg
提取碼:8owp
m和n的值也可以自己更改,不過我試過很多值,發現兩者都為8的效果比較理想,
二、結果
這是我用的冰冰的照片(選的照片盡量像素大一點):

這是結果圖(手機預覽看不到文字)

放大后可以清楚看到文字內容

補充
最后生成的圖片放大后可能會失真,文字模糊,我在網上發現一個網站,可以無損放大圖片,上傳圖片,選擇放大倍數,選擇最高降噪,兩分鐘左右就可以生成,

下面是我通過網站優化過后的圖,放大后也十分清晰,

最后把這個網站分享給大家:AI人工智能圖片無損放大
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/230412.html
標籤:python
上一篇:python可視化 matplotlib畫圖使用colorbar工具自定義顏色
下一篇:Caused by: org.springframework.beans.factory.BeanCreationException: Error creati
