2009-08-31 13 views
55

मेरा ऐप लोगों के फ़ोटो और वीडियो के साथ काम करता है, जिन्हें मैं कार्टूनिफाइड करना चाहता हूं। इसलिए मुझे इसे मैन्युअल रूप से करने के लिए एल्गोरिदम की आवश्यकता है (हम अपने उत्पाद के लिए सी ++/क्यूटी का उपयोग करते हैं, जिसमें छवि कुशलता वर्ग हैं) या शायद कुछ सीएलआई प्रोग्राम जो मेरे लिए यह करेंगे कि मैं अपने ऐप से कॉल और उपयोग कर सकता हूं।कार्टून-ify कैसे एक प्रोग्राम प्रोग्रामेटिक रूप से?

+3

क्या आप कार्टूनिफाइड चित्रों के कुछ उदाहरण दे सकते हैं? – ThibThib

+0

अधिक खोज परिणाम प्राप्त करने के लिए, कागजात आदि "गैर फोटोरिअलिस्टिक प्रतिपादन (2 डी)" की तलाश में हैं। – felix

उत्तर

42

यहाँ साथ खेलने के लिए कुछ एल्गोरिदम है:

  • माध्य या बार-बार बॉक्स कलंक फिल्टर cartoonish रंग पैलेट प्राप्त करने के लिए
    • संपादित करें: द्विपक्षीय फ़िल्टरिंग आपके एन के अनुरूप होना चाहिए eeds भी बेहतर
  • मिन फिल्टर (zeroth प्रतिशतक) किनारों के कुछ प्रकार को बढ़ाने के लिए
  • रंग छवि विभाजन बढ़त का पता लगाने का उपयोग कर खंडित छवि पर आरजीबी रंग घन में या तो छोटे subcube या क्षेत्र का उपयोग कर
  • जेनेरिक बढ़त वृद्धि इस तरह के सोबेल कर्नेल या 8-जिस तरह से किनारे लगाने
  • Composit धुंधला बढ़ाया किनारों

ये काफी बुनियादी और लागू करने के लिए सभी बहुत आसान है के साथ/मंझला फ़िल्टर छवि के रूप में। ध्यान रखें कि औसत और बॉक्स धुंध फ़िल्टर रैखिक समय जटिलता w.r.t. के साथ कार्यान्वित किया जा सकता है। कर्नेल त्रिज्या।

अधिक संपादन:

एक बार जब आप हुआंग एल्गोरिथ्म के विचार प्राप्त, एक बॉक्स कलंक फ़िल्टर लागू होने के केक का एक स्वादिष्ट टुकड़ा है।

पढ़ना सामग्री:

  • Fast Median and Bilateral Filtering (पीडीएफ प्राप्त)
  • Median Filtering Constant time (पीडीएफ प्राप्त) नोट: मैं मोनो/SIMD का उपयोग कर हिस्टोग्राम संघीकरण तेजी लाने के लिए सी # में इस का एक कार्यान्वयन है, हालांकि यह केवल (आर) एल्गोरिदम से बेहतर लगता है जब व्यास ~ 60 पिक्सल से अधिक/उप निर्देशों (ब्रेक-इवेंट पॉइंट) की तुलनीय संख्या के कारण अधिक होता है, तो एक सी ++ कार्यान्वयन संभवतः दोहन के लिए उपयुक्त होता है एसआई एमडी।

अन्य पढ़ने सामग्री में सेगमेंटेशन और एज ट्रेसिंग के लिए Gonzalez & Woods' Digital Image Processing (एक पुराना संस्करण प्रतीत होता है) शामिल है। 8-तरफा एज ट्रेसिंग आपके सिर को चारों ओर मोड़ना मुश्किल हो सकता है (ऑन-पिक्सेल या बीच-पिक्सेल किनारों और किनारों पर लेटने के बीच) का चयन करना। मुझे कुछ कोड साझा करने में खुशी होगी, लेकिन सौ-लाइनर यहां आसानी से फिट नहीं होते हैं।

+0

के लिए स्रोत कोड कहां मिला, यह मेरे उद्देश्यों के अनुरूप सर्वोत्तम लगता है - क्या आप इन एल्गोरिदम के लिए किसी भी अच्छे ऑनलाइन संसाधनों को जानते हैं जो हम यहां पोस्ट कर सकते हैं, पूर्णता के लिए? – JimDaniel

+0

बेशक, मैं थोड़ी देर बाद इसके पास वापस आऊंगा। –

+0

कूल, बहुत बहुत धन्यवाद! – JimDaniel

1

वास्तव में मुझे नहीं एक उपकरण है, लेकिन आप OSG को देख सकते हैं (openSceneGraph)

वहाँ एक osgFX पुस्तकालय है और वहाँ कार्टून प्रभाव है ... शायद आपको लगता है कि पुस्तकालय से प्रेरित करते हैं कर सकते हैं ...


शायद (मुझे नहीं पता) ImageMagick, कई विशेषताएं है शायद यह इस तरह एक सुविधा है, लेकिन मुझे नहीं पता है ...

+0

एक दृश्यग्राफ एक डिस्प्ले सिस्टम का हिस्सा है, यह वस्तुओं के एक ग्राफ को संग्रहीत करने के लिए संभालता है - छवियों में हेरफेर नहीं करता है। ओपनसीवी की तरह कुछ अधिक उपयुक्त होगा –

5

मैं इस अपने आप को नहीं किया है, लेकिन के बारे में दो चरणों में सोच छवि एक दे सकता है कि कार्टूनिश देखो।

  1. किनारों का पता लगाएं, और उन किनारों पर काफी मोटी रेखा (कुछ पिक्सल) खींचें।

  2. अपनी छवि में रंगों की संख्या घटाएं।

+0

असल में मैंने इस एल्गोरिदम की कोशिश की लेकिन मुझे सफलता नहीं मिली। शायद कुछ याद आ रही है? – ufukgun

4

सुनिश्चित नहीं हैं कि अगर इस में मदद मिलेगी, लेकिन फ़ोटोशॉप के लिए this tutorial निम्नलिखित करने का सुझाव देता:

  1. में फ़ोटोशॉप अपनी छवि को खोलें
  2. फ़िल्टर> धुंधला> गाऊसी धुंधला। स्वाद के लिए त्रिज्या 3.0 या उच्चतम पर सेट करें।
  3. संपादित करें> फीड गॉसियन ब्लर। एक खिड़की खुल जाएगी। । । मोड को अंधेरे में सेट करें। आपको अस्पष्टता को कम करने की भी आवश्यकता हो सकती है।

परिणाम यहां दिया गया है।

enter image description here

मैं कल्पना आप अपने कार्यक्रम में कुछ इसी तरह कर सकता है कि।

+0

वहां एक ट्यूटोरियल नहीं मिला, वेबसाइट एक लिंक-फार्म की तरह दिखती है ... कृपया लिंक को ठीक करें। – redtuna

+0

अजीब, जब मैं इसे पोस्ट करता था तो काम कर रहा था। इसे अभी तय करें कि यह अब क्या है, और फिर से काम कर रहा है। सर उठाने के लिए धन्यवाद। – RiddlerDev

23

आप rotoscopy की कोशिश कर सकते, toonyphotos.com की तरह कार्य करता है:

rotoscopy example

+0

मीठा। स्रोत कोड भी! एफएक्यू से – bryanbcook

+4

: "रोटोस्कोप को सही तरीके से काम करने के लिए मानव इनपुट की आवश्यकता है।" – Josip

+0

@ जोसिप: आप सही हैं, मैंने उस बिंदु को अनदेखा किया। फिर भी, सामान्य रूप से रोटोस्कोपी वह करता है जो उसने मांगा था। – mooware

7

यदि पैरामीटर के कुछ सेट हैं जो the GIMP के कार्टून फ़िल्टर (या फिल्टर के कुछ अन्य संयोजन) में वांछित प्रभाव प्राप्त करते हैं तो इसे batch processing mode में चलाया जा सकता है।

12

आप Freestyle की जाँच करने के लिए चाहते हो सकता है, एक खुला स्रोत (कोड की गूगल समर, यहां तक ​​कि) परियोजना Blender के लिए एक non-photorealistic renderer लागू करने के लिए। कार्टून-मोड में इसके आउटपुट का एक उदाहरण यहां दिया गया है: alt text http://freestyle.sourceforge.net/GALLERY/CARTOON/girl-color-and-lines-crop.jpg

+0

+1 - यह एक अच्छी छवि है, खासकर उन रेखाओं के साथ जो नाटकीय रूप से छवि की रूपरेखा और व्याख्या में मदद करते हैं। – tom10

संबंधित मुद्दे