OpenCV计算摄影学(23)艺术化风格化处理函数stylization()

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

风格化的目的是生成不以照片写实为目标的多种多样数字图像效果。边缘感知滤波器是风格化处理的理想选择,因为它们能够弱化低对比度区域,同时保留或增强高对比度特征。
该函数通过艺术化风格化处理,将输入图像转换为具有油画或卡通风格的图像,增强边缘和纹理的对比度,同时保留主要颜色块。

核心效果:

  • 强化边缘,使图像呈现类似油画笔触或卡通渲染的视觉效果。
  • 通过调整参数,可控制风格化的强度(如颜色对比、区域平滑程度)。

函数原型

void cv::stylization 	
(
	 	InputArray  	src,
		OutputArray  	dst,
		float  	sigma_s = 60,
		float  	sigma_r = 0.45f 
) 		

参数

  • src 输入 8位三通道图像。

  • dst 输出图像与src具有相同的尺寸和类型。

  • sigma_s 范围在0到200之间。

  • sigma_r 范围在0到1之间。

代码示例

#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;

int main()
{
    Mat src = imread( "/media/dingxin/data/study/OpenCV/sources/images/jiangnan.jpg" );
    if ( src.empty() )
    {
        cout << "无法读取图像!" << endl;
        return -1;
    }

    Mat dst;
    // 使用默认参数生成风格化图像
    stylization( src, dst, 60, 0.45 );
    // 或自定义参数:
    // stylization(src, dst, 100, 0.2);  // 强化边缘效果

    imshow( "原图", src );
    imshow( "风格化效果", dst );
    waitKey( 0 );
    return 0;
}

运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

村北头的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值