Cara menggunakan Python untuk menukar gambar kepada gaya komik

PHPz
Lepaskan: 2023-05-12 10:52:05
ke hadapan
1479 orang telah melayarinya

Pasang OpenCV

Mula-mula, kita perlu memasang OpenCV. OpenCV ialah perpustakaan penglihatan komputer sumber terbuka yang menyediakan pelbagai jenis alat pemprosesan imej yang boleh digunakan dalam banyak aplikasi yang berbeza.

Kita boleh memasang OpenCV dalam Python menggunakan arahan berikut: pip install opencv-python

Baca imej dan gunakan pengesanan tepi

Kita perlu membaca imej dan menggunakan edge Algoritma pengesanan untuk mengenal pasti tepi dalam imej. Ini boleh dilakukan melalui fungsi Canny dalam OpenCV. Contoh:

import cv2

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

Kod di atas membaca imej bernama input.jpg, menukarkannya kepada imej skala kelabu dan kemudian menggunakan algoritma Canny untuk mengesan tepi. Pembolehubah tepi akan mengandungi tepi yang dikesan.

Proses bahagian tepi untuk menghasilkan kesan komik

Seterusnya, kita perlu memproses tepi untuk menghasilkan kesan komik. Ini boleh dilakukan dengan menukar tepi kepada garis hitam dan menambah warna. Contoh:

# 转换为黑色线条
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)
Salin selepas log masuk

Kod di atas menukar tepi kepada garis hitam dan menggunakan merah sebagai warna garisan. Kemudian, gunakan fungsi cv2.bilateralFilter untuk menambah warna pada imej asal. Akhir sekali, tepi dan ton digabungkan untuk menghasilkan kesan komik.

Simpan imej kesan komik

Akhir sekali, kita boleh menggunakan fungsi cv2.imwrite untuk menyimpan imej kesan komik yang dihasilkan secara setempat. Contoh:

cv2.imwrite('output.jpg', cartoon)
Salin selepas log masuk

Kod di atas menyimpan imej kesan komik sebagai output.jpg.

Kod lengkap adalah seperti berikut:

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)
Salin selepas log masuk

Kod di atas menukar imej bernama input.jpg kepada kesan komik dan menyimpan imej kesan komik yang dijana sebagai output.jpg.

Kesan yang dihasilkan oleh kesan komik akan berbeza-beza bergantung pada imej asal, jadi parameter dalam kod mungkin perlu diperhalusi untuk mencapai kesan terbaik. Dengan percubaan dan pengubahsuaian berterusan, anda boleh menggunakan Python untuk mengubah imej anda menjadi gaya buku komik yang unik.

Atas ialah kandungan terperinci Cara menggunakan Python untuk menukar gambar kepada gaya komik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan