手绘PS云毕业照片走红网络,身为预备役程序员的我却把好好的青春回忆变成了暗黑系恐怖片
边缘检测是制作暗黑校园童话的强有力武器
手残果然会崩坏了美好的毕业照片,把好好的青春回忆变成了暗黑系恐怖片,原图坚决不能放,没有对比都已经把审美扭曲成这样了。
我们这里仅仅是在感官层面上来认识下sobel,laplacian,canny三种算子的区别。canny边缘线条的粗细程度是一样的。laplacian (二阶微分算子) 对于边缘的检测很敏感,可以检测到更对的信息,但是相应的,噪声也会很多。sobel (梯度算子)不太符合人眼睛的视觉原理。
#include "opencv2/opencv.hpp"
#include "opencv2/core.hpp"
#include "opencv2/highgui.hpp"
#include <iostream>using namespace std;
using namespace cv;int main(int argc, char** argv)
{String imageName("/home/warmtree/下载/M1_ComputerVision/Lab2/sky.jpeg");//char* imageName = argv[1]; //图像路径Mat image;Mat lena; //新建图像对象image = imread(imageName, 1); //1 表示BGR格式读取lena = imread(imageName, 1);// if (argc != 2 || !image.data) //image.empty()// {printf(" No image data \n ");return -1;}Mat gray_image;Mat sep_image;Mat gaussian_image;cvtColor(image, gray_image, COLOR_BGR2GRAY); //颜色通道转换 BGR-->Gray// separable filterMat kernel = cv::getGaussianKernel(7, 1.5, CV_32F);sepFilter2D(image, sep_image, -1, kernel, kernel);GaussianBlur(image, gaussian_image, cv::Size(7, 7), 1.5);Mat sobel,laplacian,canny;Sobel(lena,sobel,CV_8U,1,1);Laplacian(lena,laplacian,CV_8U,1,1);Canny(lena,canny, 100, 200);namedWindow("sobel", WINDOW_AUTOSIZE); //新建窗口namedWindow("laplacian", WINDOW_AUTOSIZE);namedWindow("canny", WINDOW_AUTOSIZE);imshow("sobel", sobel);imshow("laplacian", laplacian);imshow("canny", canny);Mat image2,image_blur,image_r;image2 = 255 - gray_image; //对图片的取反操作cv::GaussianBlur(image2, image_blur,cv::Size2i(25,25),0,0); //用高斯模糊进行处理image_blur = 255 - image_blur; //高斯模糊处理后的图像在进行取反cv::divide(image2, image_blur,image_r,256); //利用divide除法实现图片亮化//cv::imwrite("filename", image_r); //保存图片cv::imshow("image",image_r);waitKey();/*//imwrite("../../images/Gray_Image.jpg", gray_image); //保存图像namedWindow("Original image", WINDOW_AUTOSIZE); //新建窗口namedWindow("Gray image", WINDOW_AUTOSIZE);namedWindow("Result", WINDOW_AUTOSIZE);imshow("Original image", image); //与窗口对应来显示图片imshow("Gray image", gray_image);imshow("sep_Result",sep_image);imshow("gaussian_image",gaussian_image);waitKey(0); //0ms 表示无限等待 知道用户按下按键*/destroyAllWindows(); //关闭所有窗口return 0;
}
很明显,有个地方很不对劲,学士服明明是黑色的,但是,我这里面也太亮了。进行了色彩取反操作,进行边缘的叠加,效果突然好了那么一丢丢(有点像黑白漫画了。云层那块黑线有点奇怪。
双边滤波器的原理与参数效果,一个点的滤波后的像素值由他邻域内的像素点决定,通过距离和相似度来确定加权系数。
image_r = canny+image2;
cv::imshow("image",225-image_r);
残留问题:如何把黑白漫画转化成彩色漫画?
手绘PS云毕业照片走红网络,身为预备役程序员的我却把好好的青春回忆变成了暗黑系恐怖片相关推荐
- java 手绘_用普通照片生成手绘素描
Java对图像的处理,具有相当强的表现能力,下列程序可以将普通照片生成类似于手绘的素描. import java.awt.color.ColorSpace; import java.awt.image ...
- 不用手绘,自己的照片变成二次元,看后给赞
二次元是一个ACGN亚文化圈专门用语,来自于日语的"二次元(にじげん)",意思是"二维".日本早期的动画.漫画.游戏等作品都是以二维图像构成,其画面是一个平面, ...
- “转载” 融云IM商用版冰点促销 助程序员的十二时辰躺赢
最近<长安十二时辰>网剧火爆了荧屏,各行业人的十二时辰被安排得明明白白的.比如,运营的十二时辰是@所有人发红包.@不要在群里发广告.@不要在群里发果照.@不要在群里发小程序:街道办事处大妈 ...
- 融云IM商用版冰点促销 助程序员的十二时辰躺赢
最近<长安十二时辰>网剧火爆了荧屏,各行业人的十二时辰被安排得明明白白的.比如,运营的十二时辰是@所有人发红包.@**不要在群里发广告.@**不要在群里发果照.@**不要在群里发小程序:街 ...
- 云栖专辑| 阿里毕玄:程序员的成长路线
2018年12月20日,云栖社区3周岁生日.阿里巴巴常说"晴天修屋顶",所以我们特别策划了这个专辑--分享给开发者们20个阿里故事,50本书籍.第一位是林昊(毕玄). 在这篇< ...
- 2019年技术盘点容器篇(二):听腾讯云讲讲踏入成熟期的容器技术 | 程序员硬核评测...
戳蓝字"CSDN云计算"关注我们哦! 作者:刘晶晶 据相关调研机构出具的报告数据显示,目前应用容器市场规模将从2016年的 7.62亿美元增长到2020年的27亿美元.显而易见,引 ...
- 融云猿桌派: 35 岁程序员,正值当打之年,尚有星辰大海
关于35岁 35 岁对于任何方向的工程师来说,都是黄金时期.关注[融云全球互联网通信云]了解更多 这个年纪的我们,不会人云亦云,撞过了南墙,蹚过了坑.在技术和视野等方面,都真正有所沉淀了. 当你站在 ...
- 大专毕业,0基础转行C++程序员一个月后,我后悔了
大家好,这里是程序员晚枫,今天是我们的读者投稿. 需要投稿赚稿费的朋友,请添加我的微信:CoderWanFeng,备注:投稿.长期有效,欢迎大家分享自己的程序员故事. 下面是正文. 1.转行经历 今天 ...
- 网络工程师和java工程师,请问做网络工程师与程序员哪个更愉快呢
2019-06-18 考java程序员和网络工程师需要学习什么? 楼主要考的java程序员是不是SUN认证的java程序员? 我倒有一个SCJP证书,2006年8月的时候考的. 备考的比较简单,可能是 ...
最新文章
- Gromacs 5.1.4 在CentOS7下GPU加速版的安装
- 四个使用this的典型应用
- 19 个 JavaScript 常用的简写技术
- 《Adobe Illustrator CC经典教程》—第0课0.1节简介
- Ehcache BigMemory: 摆脱GC困扰(转)
- 基于Vue项目打包上线配置
- Web的26项基本概念和技术
- 富贵不压重发_为什么老人常说“贵人不顶重发”,“重发”是什么意思? ?...
- 数字调色盘【RGB和16位】
- 电商促销插画风PSD分层模板,直击底价!吸睛容情!
- 多媒体计算机的信息类型,多媒体信息主要有几种类型
- Python从菜鸟到高手(1):数字的奥秘
- android金逸电影院客户端
- 游戏加速器安卓apk代码
- JSP入门之表格以及常用表单元素(总结自身编程经验以及多本教科书)
- MPB:南农韦中组-植物根际土壤样品的非破坏性连续采集
- ABAP SY-SUBRC的含义解析
- 计算机技术在物理教学中的应用,信息技术在物理教学中的运用案例与感悟
- 教师资格证报名浏览器不兼容 - 解决方案
- html文件打开是什么意思,prn文件怎么打开?prn是什么意思?