Project này là một công cụ xử lý ảnh bằng Python, cho phép chuyển đổi bất kỳ ảnh nào thành tranh vẽ chì. Sử dụng thư viện OpenCV, chương trình sẽ nhận vào một ảnh và biến nó thành một hình ảnh thang độ xám, mô phỏng lại vẻ ngoài của một bản vẽ chì.
-
Đọc Ảnh:
- Chương trình bắt đầu bằng cách đọc ảnh đầu vào sử dụng
cv2.imread(image_path)
, vớiimage_path
là đường dẫn đến tệp ảnh bạn muốn chuyển đổi.
- Chương trình bắt đầu bằng cách đọc ảnh đầu vào sử dụng
-
Chuyển Đổi Thành Thang Độ Xám:
- Ảnh sau đó được chuyển đổi thành ảnh thang độ xám bằng
cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
, giúp đơn giản hóa ảnh bằng cách loại bỏ thông tin màu, chỉ giữ lại độ sáng.
- Ảnh sau đó được chuyển đổi thành ảnh thang độ xám bằng
-
Đảo Ngược Ảnh Thang Độ Xám:
- Ảnh thang độ xám được đảo ngược sử dụng
cv2.bitwise_not(gray_image)
. Kỹ thuật đảo ngược này là cách phổ biến để tăng cường hiệu ứng tranh vẽ chì, vì nó làm nổi bật sự tương phản trong ảnh.
- Ảnh thang độ xám được đảo ngược sử dụng
-
Làm Mờ Ảnh:
- Ảnh thang độ xám đảo ngược được làm mờ bằng
cv2.GaussianBlur(inverted_gray_image, (21,21), 0)
. Làm mờ Gaussian giúp làm mịn ảnh, tạo ra hiệu ứng nét vẽ tự nhiên hơn trong sản phẩm cuối cùng.
- Ảnh thang độ xám đảo ngược được làm mờ bằng
-
Đảo Ngược Ảnh Đã Làm Mờ:
- Ảnh đã làm mờ sau đó được đảo ngược một lần nữa sử dụng
cv2.bitwise_not(blurred_image)
.
- Ảnh đã làm mờ sau đó được đảo ngược một lần nữa sử dụng
-
Tạo Tranh Vẽ Chì:
- Cuối cùng, chương trình kết hợp ảnh thang độ xám và ảnh đã đảo ngược hai lần bằng
cv2.divide(gray_image, inverted_blurred_image, scale=256.0)
. Bước chia này tạo cho ảnh cuối cùng vẻ ngoài giống như tranh vẽ chì.
- Cuối cùng, chương trình kết hợp ảnh thang độ xám và ảnh đã đảo ngược hai lần bằng
-
Lưu Và Hiển Thị Ảnh:
- Tranh vẽ chì được lưu vào đường dẫn đầu ra đã chỉ định sử dụng
cv2.imwrite(output_path, pencil_sketch_image)
, và tranh vẽ chì này được hiển thị trong một cửa sổ sử dụngcv2.imshow('Pencil Sketch', pencil_sketch_image)
.
- Tranh vẽ chì được lưu vào đường dẫn đầu ra đã chỉ định sử dụng
Để chạy chương trình, thực hiện theo các bước sau:
-
Đảm bảo bạn đã cài đặt Python và OpenCV:
- Bạn có thể cài đặt OpenCV bằng pip nếu chưa cài đặt:
pip install opencv-python
-
Đặt ảnh vào cùng thư mục với script:
- Đảm bảo ảnh bạn muốn chuyển đổi nằm trong cùng thư mục với script Python và được đặt tên tương ứng trong script. P/s: Trong mã nguồn tôi đã dùng luôn địa chỉ của ảnh cho tiện :D
-
Chạy script:
- Thực hiện script Python sử dụng lệnh:
python pencil_sketch.py
- Ảnh đầu ra sẽ được lưu trong cùng thư mục với tên
_sketch
được thêm vào sau tên gốc.
Ảnh Gốc:
Tranh Vẽ Chì:
- Python 3.x: Đảm bảo Python đã được cài đặt trên hệ thống của bạn.
- Thư viện OpenCV (
cv2
): Cần thiết để thực hiện các tác vụ xử lý ảnh.