2010-10-17 44 views
8

không ai biết chúng tôi có thể dịch từ hình ảnh thực sự được chụp bằng camera được chuyển đổi thành không gian hoạt hình?hoạt hình hóa hình ảnh thực tế

Xin lưu ý rằng mục tiêu của tôi không phải là tạo hoạt ảnh hoặc lượt thích, mà chỉ để dịch thành "màu hoạt hình" nếu có thể.

sẽ thực hiện đơn giản hóa một không gian nơi có ít mức lượng tử hóa hoạt động Hoặc một số biến đổi cụ thể khác tốt hơn?

mọi trợ giúp sẽ hữu ích vì tôi không thể tìm thấy bất kỳ tài liệu nào về vấn đề này.

Thnx trước.

Trả lời

4

Những gì bạn đang cố gắng thực hiện thường được thực hiện từ các mô hình 3D và được gọi là cel-shading hoặc "toon-shading". Về cơ bản, bạn cố gắng buộc các màu đồng nhất và bắt buộc chuyển đổi đột ngột ở các góc nhất định đối với nguồn sáng.

Rõ ràng, điều này không dịch tốt sang hình ảnh nhập 2D. Những gì bạn có thể làm, là phải xác thực lại nhưng chắc chắn rằng bạn đồng nhất lấp đầy các khu vực và phá vỡ nơi gradient hình ảnh cao.

Non-linear diffusion là kỹ thuật denoising buộc các vùng trở nên đồng nhất để loại bỏ tiếng ồn. Nếu bạn để nó lặp lại quá nhiều lần lặp lại, bạn sẽ có được một hình ảnh hoạt hình.

Tôi đã thực hiện có thể cách đây 2-3 năm và nó hoạt động rất đáng ngạc nhiên khi xem xét việc triển khai không khó. Tuy nhiên, bạn sẽ muốn triển khai GPGPU vì nó là chậm!

+0

là có anyway để đạt được như nhau trên một chiếc điện thoại thông minh? Tôi biết việc xác nhận lại sẽ nhanh chóng, nói O (n * m) nếu hình ảnh là n-by-m. lúc xấu nhất n và m là theo thứ tự năm 2000. – Egon

+0

Việc yêu cầu sẽ không cho bạn kết quả có cùng chất lượng. Nếu bạn sẵn sàng trao đổi chất lượng cho tốc độ, đó là sự dicision của bạn! Thành thật mà nói, bạn nên thực hiện nhiều hơn một phương pháp, phân tích sự cân bằng và * sau đó * thực hiện nó trên một chiếc điện thoại thông minh. Hãy xem MATLAB, Scilab hoặc Octave để thử nghiệm nếu cần thiết. –

+0

é Tuy nhiên, sự khuếch tán phi tuyến tính đòi hỏi rất nhiều sức mạnh xử lý. – karlphillip

2

Bạn cũng có thể xem xét phân đoạn thay đổi trung bình. An thực hiện có sẵn ở đây: EDISON

2

Toàn bộ shot trong bóng tối:

  1. Chuyển đổi sang không gian màu HSV (cvtColor sử dụng CV_BGR2HSV)
  2. Để lại H (ue) một mình, hoặc quantize nó xuống để một số nhỏ hơn thiết nếu bạn muốn
  3. Binary ngưỡng S (aturation) với một ngưỡng thấp để phấn màu push to trắng
  4. Binary ngưỡng V (alue) với một ngưỡng thấp để những thứ tối quay sang đen

Tuyệt đối chưa được kiểm tra. Có thể nói ra khỏi mũ của tôi ... Nhưng nên sử dụng CPU khá thấp nếu nó hoạt động. Điều này đánh tôi như một thứ để bắn lên với thanh trượt cho các giá trị cần thiết trong bước 2-4 và chỉ fiddle với nó.

EDIT: Một người bạn đã chỉ ra rằng bạn cũng có thể muốn các dòng xung quanh các đối tượng. Suy nghĩ đầu tiên của tôi cho rằng sẽ sử dụng cvCanny để chọn ra các cạnh (yêu cầu một hình ảnh màu xám ... Tôi không chắc chắn nếu nó sẽ là tốt hơn để làm điều này trước hoặc sau khi hoạt hình HSV. Có lẽ trước). Đó sẽ là một điểm ảnh rộng duy nhất, có thể không đủ, vì vậy bạn có thể muốn dilate một chút để mở rộng chúng. Chúng sẽ có màu trắng trên nền đen, vì vậy bạn có thể trừ chúng ra khỏi hình ảnh màu hoạt hình của bạn, sẽ kéo các điểm ảnh mà các đường thẳng xuống 0 (số học bão hòa để giải cứu) nhưng chỉ để lại các pixel khác.

2

hạn "không gian phim hoạt hình" của bạn làm cho tôi nghĩ rằng có lẽ bạn nên bắt đầu từ ý tưởng rằng:

  1. Tạo một colourspace hoạt hình mà bạn thích với lẽ 20-30 màu sắc tươi sáng tốt đẹp mà bao gồm hầu hết các RGB thường xuyên không gian nhưng có một chủ đề sáng/sáng bóng (hoặc bất kỳ chủ đề màu sắc hoạt hình nào bạn thích).
  2. Yêu cầu hình ảnh của bạn chứ không phải một tập hợp con các màu có sẵn trong hình ảnh nhưng với các màu trong vùng màu hoạt hình của bạn (tức là khớp từng màu với màu gần nhất trong vùng màu phim hoạt hình của bạn).
  3. Điểm thưởng: Loại bỏ các vùng màu nhỏ để có màu đồng nhất hơn.
  4. Điểm thưởng khác: thêm đường viền màu đen cho từng vùng màu đơn để có thêm hoạt cảnh. Có thể thay đổi độ dày đường kẻ với độ dốc trong hình ảnh gốc.
  5. Tinh chỉnh tùy chọn: Chuyển đổi tất cả các màu của bạn thành HSV colourspace, chỉ thực hiện bước 2 trên kênh Huế để có thêm khả năng miễn dịch bóng.
4

Kim tự tháp có nghĩa là thay đổi + đường viền của các cạnh được phát hiện có vẻ như là công việc.

Mã:

cv::Mat segmented, gray, edges; 
cv::pyrMeanShiftFiltering(input, segmented, 15, 40); 
cv::cvtColor(segmented, gray); 
cv::Canny(gray, edges, 150, 150); 
cv::cvtColor(edges, edgesBgr, CV_GRAY2BGR); 
cv::Mat result = bgr - edgesBgr; 

Đây là một kết quả tôi đã nhận: Church after cartoon filter

chi tiết: OpenCV Tutorial Part 6

+0

Đẹp, Rất đẹp! – Royi

Các vấn đề liên quan