>백엔드 개발 >파이썬 튜토리얼 >Python을 사용하여 그림을 만화 스타일로 변환하는 방법

Python을 사용하여 그림을 만화 스타일로 변환하는 방법

PHPz
PHPz앞으로
2023-05-12 10:52:051525검색

OpenCV 설치

먼저 OpenCV를 설치해야 합니다. OpenCV는 다양한 애플리케이션에서 사용할 수 있는 다양한 이미지 처리 도구를 제공하는 오픈 소스 컴퓨터 비전 라이브러리입니다.

다음 명령을 사용하여 Python에 OpenCV를 설치할 수 있습니다: pip install opencv-python

이미지를 읽고 가장자리 감지 수행

이미지를 읽고 가장자리 감지 알고리즘을 사용하여 이미지의 가장자리를 식별해야 합니다. 이는 OpenCV의 Canny 함수를 통해 수행할 수 있습니다. 예:

import cv2

img = cv2.imread('input.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 100, 200)

위 코드는 input.jpg라는 이미지를 읽고 이를 회색조 이미지로 변환한 다음 Canny 알고리즘을 사용하여 가장자리를 감지합니다. Edge 변수에는 감지된 Edge가 포함됩니다.

코믹한 효과를 내기 위해 가장자리를 처리합니다

다음으로 코믹한 효과를 내기 위해 가장자리를 처리해야 합니다. 가장자리를 검은색 선으로 변환하고 색조를 추가하면 됩니다. 예:

# 转换为黑色线条
edges = cv2.cvtColor(edges, cv2.COLOR_GRAY2BGR)
edges[np.where((edges != [0, 0, 0]).all(axis=2))] = [0, 0, 255]

# 添加色调
color = cv2.bilateralFilter(img, 9, 300, 300)
cartoon = cv2.bitwise_and(color, edges)

위 코드는 가장자리를 검은색 선으로 변환하고 선 색상으로 빨간색을 사용합니다. 그런 다음 cv2.bitialFilter 함수를 사용하여 원본 이미지에 색조를 추가합니다. 마지막으로 가장자리와 톤을 병합하여 코믹한 효과를 만듭니다.

만화 효과 그림 저장

마지막으로 cv2.imwrite 함수를 사용하여 생성된 만화 효과 그림을 로컬에 저장할 수 있습니다. 예:

cv2.imwrite('output.jpg', cartoon)

위 코드는 만화 효과 이미지를 output.jpg로 저장합니다.

전체 코드는 다음과 같습니다.

import cv2
import numpy as np

# 读取图片并进行边缘检测
img = cv2.imread('input.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 100, 200)

# 对边缘进行处理以生成漫画效果
edges = cv2.cvtColor(edges, cv2.COLOR_GRAY2BGR)
edges[np.where((edges != [0, 0, 0]).all(axis=2))] = [0, 0, 255]
color = cv2.bilateralFilter(img, 9, 300, 300)
cartoon = cv2.bitwise_and(color, edges)

# 保存漫画效果图片
cv2.imwrite('output.jpg', cartoon)

위 코드는 input.jpg라는 이미지를 코믹 효과로 변환하고, 생성된 코믹 효과 이미지를 output.jpg로 저장합니다.

만화 효과로 생성되는 효과는 원본 이미지에 따라 달라지므로 최상의 효과를 얻으려면 코드의 매개변수를 미세 조정해야 할 수도 있습니다. 끊임없는 실험과 조정을 통해 Python을 사용하여 이미지를 독특한 만화책 스타일로 변환할 수 있습니다.

위 내용은 Python을 사용하여 그림을 만화 스타일로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제