CAPTCHA에게 HIWAI의 말을 들려주고 싶어요.
CAPTCHA 있죠?그거 귀엽다, 귀엽다!?!?(착란)
이게 바로 막내 동생입니다.
미역
OPAI도 꼭.
파이썬에서 가장 아름다운 OPAI를 그린 사람이 우승을 했습니다.
결실
밉살스럽다
안 돼요.
얼간이
만년필.
코드
텍스트 만들기
py.py
import PIL.Image
import PIL.ImageDraw
import PIL.ImageFont
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 使うフォント,サイズ,描くテキストの設定
ttfontname = "/System/Library/Fonts/Supplemental/Arial Unicode.ttf"
fontsize = 36
text = "ぽーくぴっつ"
# 画像サイズ,背景色,フォントの色を設定
canvasSize = (300, 150)
backgroundRGB = (255, 255, 255)
textRGB = (0, 0, 0)
# 文字を描く画像の作成
img = PIL.Image.new('RGB', canvasSize, backgroundRGB)
draw = PIL.ImageDraw.Draw(img)
# 用意した画像に文字列を描く
font = PIL.ImageFont.truetype(ttfontname, fontsize)
textWidth, textHeight = draw.textsize(text,font=font)
textTopLeft = (canvasSize[0]//6, canvasSize[1]//2-textHeight//2) # 前から1/6,上下中央に配置
draw.text(textTopLeft, text, fill=textRGB, font=font)
img.save(text + ".png")
이미지 왜곡
py.py
img_BGR = cv2.imread("ぽーくぴっつ.png")
img_RGB = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2RGB)
height = np.shape(img_RGB)[0]
width = np.shape(img_RGB)[1]
img_RGB_2 = img_RGB.copy()
#中心と半径の指定
center = np.array((50,50))
r = 100
#ピクセルの座標を変換
for x in range(width):
for y in range(height):
#中心からの距離
d = np.linalg.norm(center - np.array((y,x)))
#半径より小さければ座標を変換する処理をする
if d < r:
#vectorは変換ベクトル。
vector = (d / r)**1.4 * (np.array((y,x)) - center)
#変換後の座標を整数に変換
p = (center + vector).astype(np.int32)
#色のデータの置き換え
img_RGB_2[y,x,:]=img_RGB[p[0],p[1],:]
이미지 중첩
py.py
img1 = cv2.imread('CHAPCHA.png')
img2 = img_RGB_2
img1 = cv2.cvtColor(img1, cv2.COLOR_BGR2RGB)
img1 =cv2.resize(img1,(600,600))
img2 =cv2.resize(img2,(200,80))
#画像を重ねる位置の基準としてオフセットの位置を指定
x_img=200
y_img=320
img1[y_img:y_img+img2.shape[0], x_img:x_img+img2.shape[1]]=img2
cv2.imwrite(text + "2.png",img1)
총결산
캡차야 귀여워.
욕 모드를 만들 수 있기 때문에 이런 취미가 있는 사람은 꼭
지짱의 말을 듣고 싶은 사람, 아니, 지짱에게 욕을 먹으면 더 흥분하겠지!이런 분들은 댓글로 눌러주세요.
둘 다 좋아하는 거잖아요. 수시인 분들은 LGTM 팔로우 해주세요.
참고 자료
실은 이거예요.
OpenCV 기반 이미지 프로세싱 입문 개정 버전 2(KS 정보과학 전문서)
나의 성경
안전한 웹 응용을 체계적으로 학습하는 방법 제2판 취약성 발생 원리와 대책의 실천
• 문자열을 이미지로 변환
• pythhon으로 물방울이 떨어지는 것처럼 이미지를 왜곡하는 처리를 시도했다
Reference
이 문제에 관하여(CAPTCHA에게 HIWAI의 말을 들려주고 싶어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/samuragouchi-monzaemon/items/ed0cf6e8091ab73409a3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import PIL.Image
import PIL.ImageDraw
import PIL.ImageFont
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 使うフォント,サイズ,描くテキストの設定
ttfontname = "/System/Library/Fonts/Supplemental/Arial Unicode.ttf"
fontsize = 36
text = "ぽーくぴっつ"
# 画像サイズ,背景色,フォントの色を設定
canvasSize = (300, 150)
backgroundRGB = (255, 255, 255)
textRGB = (0, 0, 0)
# 文字を描く画像の作成
img = PIL.Image.new('RGB', canvasSize, backgroundRGB)
draw = PIL.ImageDraw.Draw(img)
# 用意した画像に文字列を描く
font = PIL.ImageFont.truetype(ttfontname, fontsize)
textWidth, textHeight = draw.textsize(text,font=font)
textTopLeft = (canvasSize[0]//6, canvasSize[1]//2-textHeight//2) # 前から1/6,上下中央に配置
draw.text(textTopLeft, text, fill=textRGB, font=font)
img.save(text + ".png")
img_BGR = cv2.imread("ぽーくぴっつ.png")
img_RGB = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2RGB)
height = np.shape(img_RGB)[0]
width = np.shape(img_RGB)[1]
img_RGB_2 = img_RGB.copy()
#中心と半径の指定
center = np.array((50,50))
r = 100
#ピクセルの座標を変換
for x in range(width):
for y in range(height):
#中心からの距離
d = np.linalg.norm(center - np.array((y,x)))
#半径より小さければ座標を変換する処理をする
if d < r:
#vectorは変換ベクトル。
vector = (d / r)**1.4 * (np.array((y,x)) - center)
#変換後の座標を整数に変換
p = (center + vector).astype(np.int32)
#色のデータの置き換え
img_RGB_2[y,x,:]=img_RGB[p[0],p[1],:]
img1 = cv2.imread('CHAPCHA.png')
img2 = img_RGB_2
img1 = cv2.cvtColor(img1, cv2.COLOR_BGR2RGB)
img1 =cv2.resize(img1,(600,600))
img2 =cv2.resize(img2,(200,80))
#画像を重ねる位置の基準としてオフセットの位置を指定
x_img=200
y_img=320
img1[y_img:y_img+img2.shape[0], x_img:x_img+img2.shape[1]]=img2
cv2.imwrite(text + "2.png",img1)
Reference
이 문제에 관하여(CAPTCHA에게 HIWAI의 말을 들려주고 싶어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/samuragouchi-monzaemon/items/ed0cf6e8091ab73409a3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)