当前位置: 首页 > news >正文

OpenCV应用:三种图像风格化案例

OpenCV 本身主要用于计算机视觉任务,例如图像处理、边缘检测、物体识别等,虽然它并不直接提供像 Photoshop 或其他艺术设计软件那样的 "风格化" 功能,但你可以通过一些图像处理技术在 OpenCV 中实现不同风格化效果。

1. 卡通化效果(Cartoonization)

卡通化效果通过边缘检测和色彩简化来模仿卡通风格,通常分为两个步骤:

  • 边缘检测:用边缘检测算法(如 Canny 边缘检测)提取图像的轮廓。
  • 色彩平滑化:使用高斯模糊或双边滤波来平滑图像,使其更符合卡通风格。

class FrameObject:
    def __init__(self):
        self.init_parameters()
    def init_parameters(self, *args, **kwargs):
        pass
    def do(self, frame, device):
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    
    # 进行中值模糊
        gray = cv2.medianBlur(gray, 11)

    # 边缘检测
        edges = cv2.adaptiveThreshold(gray, 255,
                                  cv2.ADAPTIVE_THRESH_MEAN_C,
                                  cv2.THRESH_BINARY, 9, 9)

    # 应用双边滤波
        color = cv2.bilateralFilter(frame, 9, 300, 300)

    # 将边缘与滤波后的图像合成
        cartoon = cv2.bitwise_and(color, color, mask=edges)
        return cartoon

2. 素描效果(Sketch Effect)

素描风格可以通过将图像转换为灰度并进行边缘检测,然后与原图混合来生成类似素描的效果。

class FrameObject:
    def __init__(self):
        self.init_parameters()
    def init_parameters(self, *args, **kwargs):
        pass
    def do(self, frame, device):
        gray_image = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    
    # 反转灰度图像
        inverted_gray = 255 - gray_image
    
    # 高斯模糊反转图像
        blurred = cv2.GaussianBlur(inverted_gray, (111, 111), 0)
    
    # 反转模糊图像
        inverted_blurred = 255 - blurred
    
    # 创建素描效果
        sketch = cv2.divide(gray_image, inverted_blurred, scale=256.0)
    
        return sketch

3.马赛克效果(Mosaic)

class FrameObject:
    def __init__(self):
        self.init_parameters()
    def init_parameters(self, *args, **kwargs):
        pass
    def do(self, frame, device):
        block_size = 10
        h, w, _ = frame.shape
        for y in range(0, h, block_size):
            for x in range(0, w, block_size):
                block = frame[y:y+block_size, x:x+block_size]
                color = np.mean(block, axis=(0, 1)).astype(int)  # 计算块的平均颜色
                frame[y:y+block_size, x:x+block_size] = color  # 填充颜色
        return frame


文章转载自:

http://nUri3Khh.qrdkk.cn
http://PECVcDui.qrdkk.cn
http://TUDyl7Ud.qrdkk.cn
http://TxX44DAk.qrdkk.cn
http://V4F6GxvR.qrdkk.cn
http://9zM20pRP.qrdkk.cn
http://m8U9gIyf.qrdkk.cn
http://dtyj08rq.qrdkk.cn
http://eeXhtqk0.qrdkk.cn
http://Zt8Yrejo.qrdkk.cn
http://661pofvx.qrdkk.cn
http://tTN0VugA.qrdkk.cn
http://tJxhEZo4.qrdkk.cn
http://cq7N7GWL.qrdkk.cn
http://osa7JnlT.qrdkk.cn
http://L6mn5G2m.qrdkk.cn
http://r9EN9jKz.qrdkk.cn
http://wQuSC0Uh.qrdkk.cn
http://okdft0fl.qrdkk.cn
http://4ebY8WO0.qrdkk.cn
http://8kAnsL35.qrdkk.cn
http://ZjnB6Q8R.qrdkk.cn
http://d0U8Nv2s.qrdkk.cn
http://hwvz9Svr.qrdkk.cn
http://6Wvcs9Yo.qrdkk.cn
http://FOpqjWKL.qrdkk.cn
http://CP2dNF4i.qrdkk.cn
http://R4AGBwzj.qrdkk.cn
http://gfXXQ7J9.qrdkk.cn
http://i5NjwQ2Q.qrdkk.cn
http://www.dtcms.com/a/57308.html

相关文章:

  • 【AIoT】智能硬件GPIO通信详解(一)
  • Java集成InfluxDB
  • linux 内网下载 yum 依赖问题
  • 【数据库系统概论】第七章 数据库设计
  • 王道操作系统笔记第四章-文件管理(非常完整!包学包会!融入笔者自己的思考!)
  • Vue3实战学习(IDEA中打开、启动与搭建Vue3工程极简脚手架教程(2025超详细教程)、Windows系统命令行启动Vue3工程)(2)
  • 整理一下高级设施农业栽培学这门课程的所有知识点
  • 清华同方超翔Z860装win10系统教程(兆芯KX-7000处理器装win10)
  • 高品质汉化解锁!
  • 中性点直接接地电网接地故障Simulink仿真
  • 如果布隆过滤器挂了,里边存的数据全丢失了,怎么恢复呢?
  • HTML5 表单属性
  • 字符串习题
  • 【Deepseek应用】调用 Zotero 阅读和分析文献(下)
  • SQL Server 与 MySQL 的库同步工具推荐
  • 前端充电 - 移动端 - 小程序登录、跳转/嵌入H5页面
  • MyBatis多表查询实现方式
  • 【技术白皮书】内功心法 | 第一部分 | IP协议的目的与工作原理(IP地址)
  • Linux 生成静态库
  • yarn install时报错certificate has expired
  • TON基金会确认冠名赞助2025香港Web3嘉年华,并将于4月8日重磅呈现“TON生态日”
  • Flow Matching 和 Rectified Flow的区别
  • 关于爱思唯尔官方Latex模版参考文献不是按照引用顺序编号,乱序问题
  • 怎么使用Sam Helper修改手机屏幕分辨率,使得游戏视野变广?
  • 为界面添加垂直滚动条事件
  • SQLiteStudio:一款免费跨平台的SQLite管理工具
  • Java对象深拷贝与浅拷贝的区别
  • 2025最新群智能优化算法:基于RRT的优化器(RRT-based Optimizer,RRTO)求解23个经典函数测试集,MATLAB
  • JeecgBoot 使用心得
  • [HTTP协议]应用层协议HTTP从入门到深刻理解并落地部署自己的云服务(2)