資源簡介
使用OpenCV對攝像頭中的圖像進行卡通畫處理,基于OpenCV2.4.2,VS2010,環境需要自己配置~
博客描述http://blog.csdn.net/guoming0000/article/details/8290146
本人blog:http://ilovecode.cn

代碼片段和文件信息
/*****************************************************************************
*???cartoon.cpp
*???Create?a?cartoon-like?or?painting-like?image?filter.
******************************************************************************
*???by?Shervin?Emami?5th?Dec?2012?(shervin.emami@gmail.com)
*???http://www.shervinemami.info/
******************************************************************************
*???Ch1?of?the?book?“Mastering?OpenCV?with?Practical?Computer?Vision?Projects“
*???Copyright?Packt?Publishing?2012.
*???http://www.packtpub.com/cool-projects-with-opencv/book
*****************************************************************************/
#include?“stdafx.h“
#include?“cartoon.h“
#include?“ImageUtils.h“?//?Handy?functions?for?debugging?OpenCV?images?by?Shervin?Emami.
//?Convert?the?given?photo?into?a?cartoon-like?or?painting-like?image.
//?Set?sketchMode?to?true?if?you?want?a?line?drawing?instead?of?a?painting.
//?Set?alienMode?to?true?if?you?want?alien?skin?instead?of?human.
//?Set?evilMode?to?true?if?you?want?an?“evil“?character?instead?of?a?“good“?character.
//?Set?debugType?to?1?to?show?where?skin?color?is?taken?from?and?2?to?show?the?skin?mask?in?a?new?window?(for?desktop).
void?cartoonifyImage(Mat?srcColor?Mat?dst?bool?sketchMode?bool?alienMode?bool?evilMode?int?debugType)
{
????//?Convert?from?BGR?color?to?Grayscale
????Mat?srcGray;
????cvtColor(srcColor?srcGray?CV_BGR2GRAY);
????//?Remove?the?pixel?noise?with?a?good?Median?filter?before?we?start?detecting?edges.
????medianBlur(srcGray?srcGray?7);
????Size?size?=?srcColor.size();
????Mat?mask?=?Mat(size?CV_8U);
????Mat?edges?=?Mat(size?CV_8U);
????if?(!evilMode)?{
????????//?Generate?a?nice?edge?mask?similar?to?a?pencil?line?drawing.
????????Laplacian(srcGray?edges?CV_8U?5);
????????threshold(edges?mask?80?255?THRESH_BINARY_INV);
????????//?Mobile?cameras?usually?have?lots?of?noise?so?remove?small
????????//?dots?of?black?noise?from?the?black?&?white?edge?mask.
????????removePepperNoise(mask);
????}
????else?{
????????//?Evil?mode?making?everything?look?like?a?scary?bad?guy.
????????//?(Where?“srcGray“?is?the?original?grayscale?image?plus?a?medianBlur?of?size?7x7).
????????Mat?edges2;
????????Scharr(srcGray?edges?CV_8U?1?0);
????????Scharr(srcGray?edges2?CV_8U?1?0?-1);
????????edges?+=?edges2;
????????threshold(edges?mask?12?255?THRESH_BINARY_INV);
????????medianBlur(mask?mask?3);
????}
????//imshow(“edges“?edges);
????//imshow(“mask“?mask);
????//?For?sketch?mode?we?just?need?the?mask!
????if?(sketchMode)?{
????????//?The?output?image?has?3?channels?not?a?single?channel.
????????cvtColor(mask?dst?CV_GRAY2BGR);
????????return;
????}
????//?Do?the?bilateral?filtering?at?a?shrunken?scale?since?it
????//?runs?so?slowly?but?doesn‘t?need?full?resolution?for?a?good?effect.
????Size?smallSize;
????smallSize.width?=?size.width/2;
????smallSize.height?=?size.height/2;
?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????13859??2012-12-13?11:36??Cartoonifier\Cartoonifier\cartoon.cpp
?????文件???????1677??2012-12-13?10:37??Cartoonifier\Cartoonifier\cartoon.h
?????文件???????6562??2012-12-13?11:35??Cartoonifier\Cartoonifier\Cartoonifier.cpp
?????文件???????5188??2012-12-13?11:54??Cartoonifier\Cartoonifier\Cartoonifier.vcxproj
?????文件???????1686??2012-12-13?11:35??Cartoonifier\Cartoonifier\Cartoonifier.vcxproj.filters
?????文件????????143??2012-12-13?11:33??Cartoonifier\Cartoonifier\Cartoonifier.vcxproj.user
?????文件??????21322??2012-12-13?10:37??Cartoonifier\Cartoonifier\ImageUtils.h
?????文件??????87477??2012-12-13?11:36??Cartoonifier\Cartoonifier\ImageUtils_0.7.cpp
?????文件???????1588??2012-12-13?11:33??Cartoonifier\Cartoonifier\ReadMe.txt
?????文件????????217??2012-12-13?11:33??Cartoonifier\Cartoonifier\stdafx.cpp
?????文件????????233??2012-12-13?11:33??Cartoonifier\Cartoonifier\stdafx.h
?????文件????????236??2012-12-13?11:33??Cartoonifier\Cartoonifier\targetver.h
?????文件????????903??2012-12-13?11:33??Cartoonifier\Cartoonifier.sln
????..A..H.?????12288??2012-12-13?12:04??Cartoonifier\Cartoonifier.suo
?????文件?????139264??2012-12-13?11:36??Cartoonifier\Debug\Cartoonifier.exe
?????目錄??????????0??2012-12-13?12:07??Cartoonifier\Cartoonifier
?????目錄??????????0??2012-12-13?12:07??Cartoonifier\Debug
?????目錄??????????0??2012-12-13?12:07??Cartoonifier
-----------?---------??----------?-----??----
???????????????292643????????????????????18
- 上一篇:網絡爬蟲爬取網頁鏈接
- 下一篇:Qt之QWizard向導界面
評論
共有 條評論