文字模糊效果(Opencv实现)

2023-11-05

效果图:

实现过程:

该方法以photoshop中的图层为基本思想,对文字的处理,实际上是将图片作为一幅图像来处理的,而背景是一幅图像,即另一个图层。

1、  读取文字图片,将图片进行高斯模糊,因高斯模糊是一个卷积的过程,所以可以设定卷积因子的大小,调整这个因子的大小就可以调节文字的模糊程度。

2、  文字图层与背景图层的叠加,为实现文字由模糊到清晰过程的透明效果,所以在文字的像素值为不同范围时,要有不同的透明度,这里选取的透明比例是与文字的像素值成正比的,即当文字像素值为0,文字不透明,当文字像像素值为128,文字半透明,文字像素值为255,文字全透明。

附实现代码:

void CArcSoft_EffectDlg::OnEffct17()

{

         //TODO: Add your control notification handler code here

         if(img==0)return;

         m_blur=99;

         SetTimer(1,100,NULL);

}

void CArcSoft_EffectDlg::OnTimer(UINTnIDEvent)

{

         //TODO: Add your message handler code here and/or call default

         Processpro;

         if(nIDEvent==1)

         {

                   bgimg=cvLoadImage("pic4.jpg",1);

                   image=cvCloneImage(img);

                   cvSmooth(image,image,CV_GAUSSIAN,m_blur,m_blur);

                   pro.myTransparent(bgimg,image,0);

                   image=cvCloneImage(bgimg);

                   myShowMFC(image,(&m_pic)->GetDC(),IDC_EFFECT);

                   cvReleaseImage(&bgimg);

         }

 

        m_blur-=4;

         if(m_blur<3)

         {

                   KillTimer(1);

                   bgimg=cvLoadImage("pic4.jpg",1);

                   image=cvCloneImage(img);

                   pro.myTransparent(bgimg,image,0);

                   image=cvCloneImage(bgimg);

                   myShowMFC(image,(&m_pic)->GetDC(),IDC_EFFECT);

                   cvReleaseImage(&bgimg);

 

         }

         CDialog::OnTimer(nIDEvent);

}

void Process::myTransparent(IplImage *img,IplImage *img1, int ratio)

{

         intwidth=img->width;

         intheight=img->height;

         intstep=img->widthStep;

         intchannel=img->nChannels;

         uchar*data=(uchar *) img->imageData;

         IplImage*img2=cvCreateImage(cvSize(width,height),img->depth,img->nChannels);

         cvResize(img1,img2,CV_INTER_LINEAR);

         uchar*data2=(uchar *) img2->imageData;

        

         for(int i=0;i<height;i++)

                   for(intj=0;j<width;j++)

                            for(intk=0;k<channel;k++)

                            {

                                     floatm_trans=(float)data2[i*step+j*channel+k]/255;

data[i*step+j*channel+k]=data[i*step+j*channel+k]*m_trans+data2[i*step+j*channel+k]*(1-m_trans);

                            }

         cvReleaseImage(&img2);

}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

文字模糊效果(Opencv实现) 的相关文章

  • 将二进制文件转换为图像

    我需要找到一种将二进制文件转换为图像的快速方法 二进制文件由 N 个NN 矩阵 我想将 0 与一种颜色关联 将 1 与另一种颜色关联 我需要对超过 1000 个二进制文件执行此操作 如果可能的话 我想避免使用 MatLab 有没有任何工具
  • 如何在Python中设置像素的alpha值

    我正在尝试编辑image https drive google com file d 0B8JcwRV HVk0OURrcTFJczhmV2RlUGdMOG0ybldYUVRoamtF view usp sharing以一种将所有白色像素转
  • 将图像转换为二进制流

    我的应用程序有两个方面 一方面我使用 C 来使用 Pleora 的 EBUS SDK 从相机读取帧 当第一次接收到该流时 在将缓冲区转换为图像之前 我能够一次读取 16 位流 以便对每个像素执行一些计算 即每个像素都存在一个 16 位数据块
  • Unity-3d-5 将 16:9 的图像缩放至其他分辨率

    所以我创建了一个蛇游戏 其边框是用 2d 精灵创建的 我将游戏窗口设置为 16 9 在此分辨率下图像看起来不错 然而 扩展到其他任何东西开始让游戏看起来很奇怪 我想要调整游戏窗口的大小 如何让我的精灵根据当前分辨率拉伸和收缩 我已经尝试创建
  • 确定非空列表条目是否“连续”的 Pythonic 方法

    我正在寻找一种方法来轻松确定列表中所有非 None 项目是否出现在单个连续切片中 我将使用整数作为非 None 项目的示例 例如 列表 None None 1 2 3 None None 满足我对连续整数条目的要求 相比之下 1 2 Non
  • 使用 BufferedImages 获取图像每个像素的颜色

    我试图获取图像的每个像素的每种颜色 我的想法如下 int pixels BufferedImage image image ImageIO read this getClass getResources image png int pixe
  • 在 C# 中追加到空字符串是如何工作的?

    我很惊讶地看到一个字符串被初始化为 null 然后在生产环境中附加一些内容的示例 只是闻起来不对劲 我确信它会抛出空对象异常 但这个大大简化的示例也有效 string sample null sample test sample equal
  • 图像增强 - 从书写中清除给定图像

    我需要清理这张照片 删除 清理我 的字样并使其变亮 作为图像处理课程作业的一部分 我可能会使用 matlab 函数 ginput 来查找图像中的特定点 当然 在脚本中您应该对所需的坐标进行硬编码 您可以使用 conv2 fft2 ifft2
  • 如何通过列名检查MySqlDataReader中的NULL?

    我怎样才能检查NULL开放的价值MySqlDataReader 以下不起作用 它总是击中else if rdr GetString timeOut null queryResult Egresstime Logged in else que
  • C# Null 传播运算符/条件访问表达式和 if 块

    The 空传播运算符 条件访问表达式 https roslyn codeplex com discussions 540883进来c 6 0 questions tagged c 23 6 0看起来是一个非常方便的功能 但我很好奇它是否有助
  • 在 Java 中加载和缓存图像的最佳方法是什么?

    我有超过一千个 16 x 16 像素图块图像的大量集合 我在 Java 中制作的游戏需要这些图像 在不耗尽 JVM 可用内存的情况下存储切片的最佳方法是什么 我认为生成 1000 BufferedImages 可能并不明智 保持图像准备就绪
  • 用 C# 在图像上写入文本

    我有以下问题 我想在位图图像中制作一些图形 例如债券形式 我可以在图像中写入文字但我会在不同的位置写更多的文字 Bitmap a new Bitmap path picture bmp using Graphics g Graphics F
  • 如何在 Angular JS 中显示以字节数组形式接收的图像

    我有一个将返回图像的服务器端应用程序 这些是响应标头 Content Disposition attachment filename 8822a009 944e 43f4 999b d297198d302a 1 0 low res Cont
  • 在 javascript/jquery 中获取图像的完整尺寸

    我在页面上有一个图像 该图像已调整大小以适合 div 例如 400x300 如何在 jQuery 中获取图像的完整尺寸 4000x3000 width 和 height 似乎只返回图像的当前大小 图像有naturalWidth and na
  • 图像上的 JQuery 加载事件

    我想在加载图像时将图像父级的大小调整为与图像相同的大小 此时我正在使用这段代码 window load function image principale each function this parent css height this
  • 人体的宽度和高度

    如何识别图像中人体的高度和宽度 你需要一些参考点 除非您知道相机设置 位置 变焦 镜头畸变等 以及人相对于相机的位置 否则简单的照片是不够的 如果您确实有参考 例如背景中的网格或其他东西 那么您可以测量网格并从那里开始 听起来不像你需要的
  • 调用不通过空指针访问成员的非静态方法是否合法/定义良好的 C++?

    我最近遇到了以下代码 class Foo public void bar other stuff void Foo bar if this do some stuff without accessing any data members r
  • java.sql.SQLException:在结果集开始之前[重复]

    这个问题在这里已经有答案了 我已尝试使用以下代码来检索存储在数据库中的图像 我创建了一个名为image db包含一个名为的表image details 该表有两个字段 id and image path两者都是类型mediumblob 我在
  • 块执行后变量返回 null

    我正在调度一个队列来在单独的线程上下载一些 flickr 照片 在 viewWillAppear 中 当我记录块内数组的内容时 它完美地显示了所有内容 dispatch queue t photoDowonload dispatch que
  • iOS - 基于设备的不同图像或缩放相同的图像?

    似乎开发人员总是为不同的设备创建不同的图像资源 并根据设备加载它们 但是 只为最高分辨率的设备 iPad 创建图像 然后为 iPhone 6 5 等缩小该图像 有什么缺点吗 我使用 SpriteKit 因此我只需创建不同大小的 SKSpri

随机推荐

  • 【学习笔记】感知机模型

    感知机 Perceptron 概述 1957年被提出 是一种有单层计算单元的神经网络模型 在结构上与M P模型相似 提出初衷是解决数据的分类问题 感知机是神经网络和支持向量机的基础 感知机原理 感知机本身是一种能进行二分类的线性模型 只要被
  • mysql为什么使用b+树

    MySQL 使用 B 树有以下几个原因 查询效率高 B 树的查询时间复杂度是 log n 级别的 相比链表和二叉树的 O n 性能要高得多 支持范围查询 B 树能够支持范围查询 这在 MySQL 中经常用于 WHERE 子句中的 BETWE
  • HC-05蓝牙模块使用记录

    前言 后面可能需要用到蓝牙远程控制 所以提前了解了一下 主要是用买来的蓝牙模块HC 05 主要包括一个蓝牙芯片CSR BC417 该公司是剑桥的一个公司 现已被高通收购 和一个FLASH芯片 调试一下两个HC 05之间基本的通讯以及与手机蓝
  • 关于TypeScript的引用类型

    基本数据类型 引用数据类型 赋值引用 public copyCite let obj name 1 let copyObj obj obj name 2 console log copyObj name 2 由于对象之间的赋值是复制了地址
  • 位运算的应用

    前天几天研究了下JDK的Collection接口 本来准备接着研究Map接口 可是一查看HashMap类源码傻眼咯 到处是位运算实现 所以我觉得还是有必要先补补位运算知识 不然代码看起来有点费力 今天系统研究了下 现记录如下 首先要明白一个
  • elementUI的el-table表格不生效问题

    我之前下载的elementUI依赖是用的镜像cnpm 删掉原来的依赖重新下npm的依赖npm i element ui S 重启前台服务就可以了
  • vue3和vite

    1 安装 vue cli 3 yarn add vue cli next 2 安装vite vue add vite 3 安装成功后package json中会添加 scripts vite node bin vite devDepende
  • 【hello C++】智能指针

    目录 一 内存泄漏 1 1 什么是内存泄漏 内存泄漏的危害 1 2 内存泄漏分类 1 3 如何检测内存泄漏 1 4 如何避免内存泄漏 二 智能指针的使用及原理 2 1 RAII 2 2 智能指针的原理 2 3 智能指针的发展历程 2 4 智
  • componentDidUpdate vs componentWillReceiveProps

    componentDidUpdate有两个参数prevProps和prevState 不管是父组件props的修改还是state状态的更改都会触发该方法 而componentWillReceiveProps只有在父组件重新render pr
  • IDEA 2020.1官网汉化插件安装

    idea 终于更新了2020 1版本 推荐使用2020的版本 新增了好多的特性 官方也终于支持了中文语言包 但是有些兄弟下载后在插件市场无法找到官方的汉化包等问题 请安装下面操作即可 1 去IDEA插件中心 https plugins je
  • protobuf通信消息设计技巧备忘

    1 有一个全局的ProtobufMessage 所有的requestXXX responseXXX都作为他的一个可选属性 这样简单粗暴的避免了需要二次序列化反序列化的恶心问题 2 有一个CommonMessage作为他的一个字段 用来存放公
  • Data-centric Artificial Intelligence: A Survey

    本文是AI相关的论文 针对 Data centric Artificial Intelligence A Survey 的翻译 以数据为中心的人工智能 综述 摘要 1 引言 2 数据为中心AI的背景 3 训练数据开发 4 推理数据开发 5
  • 逻辑地址空间、页表与如何确定页表项大小

    32位逻辑地址空间 一页4KB 按字节编制 页式内存管理中如何确定页表项大小 因为是32位逻辑地址 故寻址空间为2 32B 而一页大小为4KB 故需要2 32 4B 2 20页 1M页 假设在内存中地址 而页表则是对这些页表的记录 因一页大
  • lastpass 右边_如何使用LastPass的替代产品Bitwarden管理密码

    lastpass 右边 您是否觉得自己拥有的密码超出了跟踪范围 这可能不仅仅是一种感觉 像我们大多数人一样 您可能很难记住所有这些密码 无论它们多么简单或复杂 许多人使用诸如LastPass和1Password之类的流行服务来帮助他们弄乱密
  • ARMv7体系结构汇总

    文章目录 1 处理器工作模式 2 处理器工作状态 3 ARM寄存器 3 1 通用寄存器 3 2 状态寄存器 3 3 备份的程序状态寄存器SPSR 3 4 Thumb寄存器 4 ARM指令系统 4 1 指令和指令格式 4 2 指令的可选后缀
  • 科大个人主页/FTP系统

    参考网页 https ustcnet ustc edu cn 2015 0324 c11130a120792 page htm 最终结果如下 大家快来逛逛吧 http home ustc edu cn sa517486
  • linux系统下从/proc中找回误删除的控制文件

    linux系统下从 proc中找回误删除的控制文件 SYS PROD3 gt select name from v controlfile NAME home oracle db1 control01 ctl SYS PROD3 gt rm
  • ZooKeeper 之Apache Curator 客户端使用

    ZooKeeper 原生不足之处 超时重连 不支持自动 需要手动操作 Watch注册一次后会失效 不支持递归创建节点 Apache Curator apache的开源项目 解决watcher注册一次就失效的问题 api更加简单易用 提供更多
  • TCP/IP详解 卷1:协议 学习笔记 第二章 链路层

    链路层主要有三个目的 1 为IP模块发送和接受IP数据报 2 为ARP模块发送ARP请求和接受ARP应答 3 为RARP模块发送RARP请求和接受RARP应答 TCP IP支持不同的链路层协议 这取决于网络所用的硬件 如以太网 令牌环网 F
  • 文字模糊效果(Opencv实现)

    效果图 实现过程 该方法以photoshop中的图层为基本思想 对文字的处理 实际上是将图片作为一幅图像来处理的 而背景是一幅图像 即另一个图层 1 读取文字图片 将图片进行高斯模糊 因高斯模糊是一个卷积的过程 所以可以设定卷积因子的大小