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 
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;
}

运行结果

你可能感兴趣的:(OpenCV,opencv,人工智能,计算机视觉)