learnopencv非真实感渲染

边缘保留过滤器( edgePreservingFilter)

//边缘保留过滤器(  edgePreservingFilter) 
	//输出3通道图像
	//RECURS_FILTER(递归过滤)= 1,NORMCONV_FILTER(归一化卷积)=2。使用RECURS_FILTER选项的速度比NORMCONV_FILTER快3.5倍。
		//当不需要锐化并且速度很重要时,应使用RECURS_FILTER。
	//sigma_s	范围介于0到200之间,该参数确定平滑程度,典型的平滑滤波器将像素值替换为其相邻像素的加权和。
		//邻域越大,过滤后的图像看起来越平滑。邻域的大小与参数sigma_s成正比
	//sigma_r	范围介于0到1之间
		//不能简单地用相邻像素的加权总和代替像素的颜色,我们要用附近像素的平均值替换像素上的颜色值,
		//sigma_s和sigma_r。就像其他平滑滤镜一样,
		//sigma_s控制邻域的大小,而sigma_r(用于sigma_range)控制邻域内不同颜色的平均方式。
		//当sigma_s 取值不变时候,sigma_r 越大图像滤波效果越明显;
		//当sigma_r 取值不变时候,窗口 sigma_s 越大图像模糊效果越明显;
		//当sgma_r取值很小的时候,窗口 sigma_s 取值无论如何变化,图像双边滤波效果都不好!
	edgePreservingFilter(img, imgd, RECURS_FILTER,60,0.4);
	edgePreservingFilter(img, imgdd, NORMCONV_FILTER, 60, 0.4);

	//建议使用  RECURS_FILTER, 因为它比  NORMCONV_FILTER快得多。

细节增强过滤器(detailEnhance)

//滤镜增强了细节,使图像看起来更清晰。
	
	detailEnhance(img, imgddd, 10, 0.15);

铅笔素描过滤器(PencilSketch)

//输出看起来像铅笔素描。有两个输出,一个是将滤镜应用于彩色输入图像的结果,另一个是将其应用于输入图像的灰度版本的结果
	//第二个参数输出灰度图像
	//参数3:输出彩色图像
	//第五个参数shade_factor(范围0到0.1)是输出图像强度的简单缩放。值越高,结果越亮。
	pencilSketch(img, imgdddd, imgddddd, 60, 0.07);

//程式化筛选器(程式化)Stylization Filter ( stylization )

//程式化筛选器(程式化)Stylization Filter ( stylization )
	//输出看起来像是使用水彩画的图像。
	stylization(img, imgdddddd, 60, 0.07);

源码

// learnopncv.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <opencv2/opencv.hpp>




int main()
{
   /* std::cout << "Hello World!\n";*/
	using namespace cv;
	using namespace std;
	Mat img = imread("C:/Users/sualab/Desktop/cow.jpg");
	if (img.empty()) {
		cout << "not" << endl;
		return 0;
	}
	imshow("test", img);
	
	Mat imgd,imgdd,imgddd,imgdddd,imgddddd,imgdddddd = img.clone();


	//边缘保留过滤器(  edgePreservingFilter) 
	//输出3通道图像
	//RECURS_FILTER(递归过滤)= 1,NORMCONV_FILTER(归一化卷积)=2。使用RECURS_FILTER选项的速度比NORMCONV_FILTER快3.5倍。
		//当不需要锐化并且速度很重要时,应使用RECURS_FILTER。
	//sigma_s	范围介于0到200之间,该参数确定平滑程度,典型的平滑滤波器将像素值替换为其相邻像素的加权和。
		//邻域越大,过滤后的图像看起来越平滑。邻域的大小与参数sigma_s成正比
	//sigma_r	范围介于0到1之间
		//不能简单地用相邻像素的加权总和代替像素的颜色,我们要用附近像素的平均值替换像素上的颜色值,
		//sigma_s和sigma_r。就像其他平滑滤镜一样,
		//sigma_s控制邻域的大小,而sigma_r(用于sigma_range)控制邻域内不同颜色的平均方式。
		//当sigma_s 取值不变时候,sigma_r 越大图像滤波效果越明显;
		//当sigma_r 取值不变时候,窗口 sigma_s 越大图像模糊效果越明显;
		//当sgma_r取值很小的时候,窗口 sigma_s 取值无论如何变化,图像双边滤波效果都不好!
	edgePreservingFilter(img, imgd, RECURS_FILTER,60,0.4);
	edgePreservingFilter(img, imgdd, NORMCONV_FILTER, 60, 0.4);

	//建议使用  RECURS_FILTER, 因为它比  NORMCONV_FILTER快得多。




	//细节增强过滤器(detailEnhance)
	//滤镜增强了细节,使图像看起来更清晰。
	
	detailEnhance(img, imgddd, 10, 0.15);




	//铅笔素描过滤器(PencilSketch)
	//输出看起来像铅笔素描。有两个输出,一个是将滤镜应用于彩色输入图像的结果,另一个是将其应用于输入图像的灰度版本的结果
	//第二个参数输出灰度图像
	//参数3:输出彩色图像
	//第五个参数shade_factor(范围0到0.1)是输出图像强度的简单缩放。值越高,结果越亮。
	pencilSketch(img, imgdddd, imgddddd, 60, 0.07);




	//程式化筛选器(程式化)Stylization Filter ( stylization )
	//输出看起来像是使用水彩画的图像。
	stylization(img, imgdddddd, 60, 0.07);



	waitKey(0);
	return 0;

}

图像

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值