学习OpenCV——用OpenCv画漫画
来源:互联网 发布:宋慧乔 知乎 编辑:程序博客网 时间:2024/06/16 10:01
闲的时候用OpenCV画漫画也挺有意思,虽然效果不好(达不到上面所实现的效果),
参数需要调整,还是大头贴而且噪声小的图像比较合适
而且可以熟悉一下关于各种滤波的操作比如:双边滤波;
#include "cv.h"#include "highgui.h"using namespace cv;using namespace std;int main(){string name="D:/cartoon0.jpg";Mat src1=imread(name,1);Mat img;//双边滤波,第3个参数d可以说d>5时不能实时处理,最后两个参数是sigma参数,一般相同,//<10时基本没效果, >150时漫画效果bilateralFilter(src1,img,5,150,150);bilateralFilter(img,src1,5,150,150);//img.copyTo(src1);imshow("bilateral",src1);waitKey(0);Mat src;cvtColor(src1,src,CV_BGR2GRAY);//粗线,越大越粗,但是会有大量噪点Mat imgL;//第三个参数ddepth表示目标图像的深度,ddepth=-1时,与原图像一致Laplacian(src,imgL,-1,3,1);imshow("Laplacian",imgL);waitKey(0);//细线Mat imgC;Canny(src,imgC,30,90);imshow("Canny",imgC);waitKey(0);Mat imgS,imgSx,imgSy,imgS0;Sobel(src,imgSx,-1,0,1);Sobel(src,imgSx,-1,1,0);imgS=imgSx+imgSy;Sobel(src,imgS0,-1,1,1);imshow("Sobel0",imgS0);imshow("Sobel",imgS);waitKey(0);Mat imgTotal;imgTotal=imgC+imgS+imgL;//imgTotal.convertTo(imgTotal,CV_32FC1);normalize(imgTotal,imgTotal,255,0,CV_MINMAX);GaussianBlur(imgTotal,imgTotal,Size(3,3),3);threshold(imgTotal,imgTotal,100,255,THRESH_BINARY_INV);imshow("Total",imgTotal);waitKey(0);Mat imgTotalC3;cvtColor(imgTotal,imgTotalC3,CV_GRAY2BGR);bitwise_and(src1,imgTotalC3,src1);imshow("Result",src1);waitKey(0);name.insert(11,"_edge");imwrite(name,src1);/*Mat img(imgTotal.rows,imgTotal.cols,CV_32FC1);for(int i=0;i<imgTotal.rows;i++){//uchar* p=(uchar*)(imgTotal.ptr()+i*imgTotal.step);for(int j=0;j<imgTotal.cols;j++){if(imgTotal.at<float>(i,j)==0)img.at<float>(i,j)=1;}}imshow("Reverse",img);waitKey(0);*//*Mat imgSc;Scharr(src,imgSc,-1,1,0);imshow("Scharr",imgSc);waitKey(0);*/}
![](http://my.csdn.net/uploads/201205/07/1336405938_3587.jpg)
![](http://my.csdn.net/uploads/201205/07/1336405948_2857.jpg)
- 学习OpenCV——用OpenCv画漫画
- OpenCV学习——永久性配置opencv
- opencv学习—形态学
- 学习opencv—cvHoughLines2
- Opencv学习笔记——画矩形
- opencv学习——画轮廓
- OpenCV学习——抠图
- 学习OpenCV——DrawRect
- 学习OpenCV——SVM
- 学习OpenCV——grabcut
- 学习OpenCV——OpenMP
- 学习OpenCV——HoG
- 学习OpenCV——HOG
- 学习OpenCV——SVM
- OpenCV学习——Mat
- 【学习OpenCV】——highgui
- 学习OpenCV——SVM
- Python—OpenCV学习网站
- Java_int最大值加一和最小值减一问题
- linux 后台进程
- javascript--事件委托
- ogg格式
- 匈牙利算法简介
- 学习OpenCV——用OpenCv画漫画
- sqlite和apk一起打包分析
- Oracle有关表的四种连接方式讲解
- chapter1 数据库的设计---4设计数据库的步骤
- 网关 简介
- 对比Windows OOP与Cocoa MVC
- 友元族的实现
- 16个桌面Linux用户必须要知道的Shell命令
- 想学seo的进来瞅瞅吧