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
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)
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.
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)
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.
Akhir sekali, kita boleh menggunakan fungsi cv2.imwrite untuk menyimpan imej kesan komik yang dihasilkan secara setempat. Contoh:
cv2.imwrite('output.jpg', cartoon)
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)
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!