OpenCV實(shí)現(xiàn)彩色照片轉(zhuǎn)換成素描卡通片
本文實(shí)例為大家分享了OpenCV實(shí)現(xiàn)彩色照片轉(zhuǎn)換成素描卡通片的具體代碼,供大家參考,具體內(nèi)容如下
#include"stdafx.h" //#include<cv.h> //#include<highgui.h> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/core/core.hpp> using namespace cv; using namespace std; int main() { Mat src,smallImg,tmp,bigImg,gray,edges,masks,dst; const int MEDIAN_BLUR_FILTER_SIZE = 7; const int LAPLACIAN_FILTER_SIZE = 5; const int EDGES_THRESHOLD = 80; int repetitions = 7; // Repetitions for strong cartoon effect. src = imread("pic.jpg"); Size size = src.size(); Size smallSize; smallSize.width = size.width/2; smallSize.height = size.height/2; smallImg = Mat(smallSize, CV_8UC3); tmp = Mat(smallSize, CV_8UC3); dst= Mat(size,CV_8UC3); cvtColor(src,gray,CV_BGR2GRAY); medianBlur(gray,gray,MEDIAN_BLUR_FILTER_SIZE); Laplacian(gray, edges, CV_8U,LAPLACIAN_FILTER_SIZE); threshold(edges, masks,EDGES_THRESHOLD,255, THRESH_BINARY_INV); imshow("sketch:)", masks); waitKey(10); resize(src, smallImg, smallSize, 0,0, INTER_LINEAR); for (int i=0; i<repetitions; i++) { int ksize = 9; // Filter size. Has a large effect on speed. double sigmaColor = 9; // Filter color strength. double sigmaSpace = 7; // Spatial strength. Affects speed. bilateralFilter(smallImg, tmp, ksize, sigmaColor, sigmaSpace); bilateralFilter(tmp, smallImg, ksize, sigmaColor, sigmaSpace); } resize(smallImg, bigImg, size, 0,0, INTER_LINEAR); bigImg.copyTo(dst,masks); imshow("cartoon :)", dst); waitKey(0); return 0; }
原圖、素描圖、卡通圖效果依次為:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++小利器之std::bind參數(shù)綁定包裝器的使用詳解
從 C++11 開(kāi)始,標(biāo)準(zhǔn)庫(kù)提供了 std::bind 用于綁定函數(shù) f 和調(diào)用參數(shù),返回一個(gè)新可調(diào)用函數(shù)對(duì)象 fn,下面就跟隨小編一起深入了解一下std::bind的具體使用吧2023-12-12C++實(shí)現(xiàn)刪除txt文件中指定內(nèi)容的示例代碼
這篇文章主要介紹了C++實(shí)現(xiàn)刪除txt文件中指定內(nèi)容的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12C語(yǔ)言實(shí)現(xiàn)BMP圖像細(xì)化處理
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)BMP圖像細(xì)化處理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10C++學(xué)習(xí)之移動(dòng)語(yǔ)義與智能指針詳解
智能指針和移動(dòng)語(yǔ)義是迄今為止,最難理解的兩個(gè)概念,下面這篇文章主要給大家介紹了關(guān)于C++學(xué)習(xí)之移動(dòng)語(yǔ)義與智能指針的相關(guān)資料,需要的朋友可以參考下2021-05-05C語(yǔ)言函數(shù)棧幀的創(chuàng)建和銷(xiāo)毀詳解
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言函數(shù)棧幀的創(chuàng)建和銷(xiāo)毀,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-02-02C++實(shí)現(xiàn)二叉樹(shù)遍歷序列的求解方法
這篇文章主要介紹了C++實(shí)現(xiàn)二叉樹(shù)遍歷序列的求解方法,需要的朋友可以參考下2014-08-08