图像处理

opencv与mfc显示图片操作,MFC的鼠标响应在opencv图片上失效,opencv滚轮事件没有响应问题描述解决。

本秂侑毒 提交于 2020-05-04 23:02:04
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11588758.html 用 mfc 与 OPENCV 编写成。 出了很多冲突异常事件导致鼠标操作没有响应 当 opencv 窗口与 mfc 控件绑定时,可以认为 opencv 绑定区域覆盖在 mfc 控件上,此时 mfc 本身的鼠标响应在此区域失效,只能调用 opencv 的鼠标响应事件。 而当你调用 opencv 的鼠标滚轮事件时候又会没有反应,此时是因为 mfc 的鼠标滚轮事件优先级别更好 ,只能在这里用 mfc 的鼠标滚轮响应事件。 不想出现上面的问题,解决办法有: 直接使用 Mfc 的图像处理类不用 opencv 或者使用 opencv 显示时不将窗口绑定到 mfc 控件上,而是转换图像类格式写入 或者就像我上面说的,使用opencv的鼠标点击事件,使用Mfc的鼠标滚轮事件。 若有兴趣交流分享技术,可关注本人公众号,里面会不定期的分享各种编程教程,和共享源码,诸如研究分享关于c/c++,python,前端,后端,opencv,halcon,opengl,机器学习深度学习之类有关于基础编程,图像处理和机器视觉开发的知识 来源: oschina 链接: https://my.oschina.net/u/4388787/blog/3385672

retinex图像增强算法的研究

送分小仙女□ 提交于 2020-05-04 18:13:04
图像增强方面我共研究了Retinex、暗通道去雾、ACE等算法。其实,它们都是共通的。甚至可以说,Retinex和暗通道去雾就是同一个算法的两个不同视角,而ACE算法又是将Retinex和灰度世界等白平衡理论相结合的产物。下面将依次讨论,每个算法写一个心得,欢迎拍砖。 今天先写Retinex。Retinex理论认为,人眼观测到的图像S是光照图像L和物体反射图像R的乘积。而R才是真实的恒常性的图像,但是怎么从观测图像S中计算R呢?这是个病态问题,根本不可解。研究者就通过加以一定的约束条件,比如光照L具有缓变平滑性、L与S有一定的弱相关性等等,然后估计出光照图像L,进而得到R。 从S中如何估计L,就衍生出了各种各样的实现方式,影响较大的有:中心环绕、随机路径、变分、金字塔迭代等等方法。其中,中心环绕算法无疑是影响最大的retinex实现方式,使用高斯尺度算子来估计光照图像,计算速度快。当然,它也有一些缺点: 1) 在强光阴影过渡区容易出现光晕现象; 主要是由于高斯算子不能在过渡区很好的估计光照所致。 2) 对比较亮的图像处理欠佳,比如雾霾图像。 主要原因有二:retinex不是专门的去雾算法;对数化处理压缩了亮区域的显示范围,导致其细节弱化。 由于L和R是乘积的关系,为了便于处理,一般对观测图像S先进行对数处理,这样就转换成了加性关系。使用对数处理可以极大的提升暗区域的像素值

opencv-11-中值滤波及自适应中值滤波

喜欢而已 提交于 2020-05-04 18:06:19
开始之前 在上一篇我们实现了读取噪声图像, 然后 进行三种形式的均值滤波得到结果, 由于我们自己写的均值滤波未作边缘处理, 所以效果有一定的下降, 但是总体来说, 我们得到的结果能够说明我们的算法执行之后得到的图像噪声更低, 图像更清晰. 但是也会造成图像的模糊, 导致部分细节丢失. 在这一章中,我们介绍一下中值滤波及其实现 摘要 首先介绍了中值滤波的原理, 给出其实现思路,并根据思路实现了 C++ 的代码, 然后 同样测试 opencv 自带的中值滤波, 同样的测试图像, 得到对比结果, 分析代码的实现过程, . 正文 中值滤波原理 中值滤波(Media Filter)就是对于图像的每一个点计算其邻域窗口的像素序列中值, 可以表示为: \[g(x,y) = meida_{(i,j) \in S}f(i,j) \] 核心就是将相应窗口内的像素值进行排列, 我们之前也说过, 我们选择的窗口为奇数尺寸, 所以我们能够保证窗口内的像素个数也是奇数个, 这样我们可以保证取得唯一的中值, 相应的设置为该点的目标值就行了. C++ 实现中值滤波 我们来实现一下, 这方面还是能够找到不少结果的, 感觉这个博主写的还是很不错的,有兴趣的可以看下 数字图像处理------中值滤波 ,还有 图像处理之中值滤波介绍及C实现 , 或者 中值滤波器(Median filter)特性及其实现 ,

opencv-11-中值滤波及自适应中值滤波

倖福魔咒の 提交于 2020-05-04 17:56:55
开始之前 在上一篇我们实现了读取噪声图像, 然后 进行三种形式的均值滤波得到结果, 由于我们自己写的均值滤波未作边缘处理, 所以效果有一定的下降, 但是总体来说, 我们得到的结果能够说明我们的算法执行之后得到的图像噪声更低, 图像更清晰. 但是也会造成图像的模糊, 导致部分细节丢失. 在这一章中,我们介绍一下中值滤波及其实现 摘要 首先介绍了中值滤波的原理, 给出其实现思路,并根据思路实现了 C++ 的代码, 然后 同样测试 opencv 自带的中值滤波, 同样的测试图像, 得到对比结果, 分析代码的实现过程, . 正文 中值滤波原理 中值滤波(Media Filter)就是对于图像的每一个点计算其邻域窗口的像素序列中值, 可以表示为: \[g(x,y) = meida_{(i,j) \in S}f(i,j) \] 核心就是将相应窗口内的像素值进行排列, 我们之前也说过, 我们选择的窗口为奇数尺寸, 所以我们能够保证窗口内的像素个数也是奇数个, 这样我们可以保证取得唯一的中值, 相应的设置为该点的目标值就行了. C++ 实现中值滤波 我们来实现一下, 这方面还是能够找到不少结果的, 感觉这个博主写的还是很不错的,有兴趣的可以看下 数字图像处理------中值滤波 ,还有 图像处理之中值滤波介绍及C实现 , 或者 中值滤波器(Median filter)特性及其实现 ,

python+opencv实现机器视觉基础技术(2)(宽度测量,缺陷检测,医学处理)

与世无争的帅哥 提交于 2020-05-04 12:11:10
  本篇博客接着讲解机器视觉的有关技术和知识。包括宽度测量,缺陷检测,医学处理。 一:宽度测量   在传统的自动化生产中,对于尺寸的测量,典型的方法就是千分尺、游标卡尺、塞尺等。而这些测量手段测量精度低、速度慢,无法满足大规模的自动化生产需求。基于机器视觉的尺寸测量属于非接触式的测量,具有检测精度高、速度快、成本低、安装简便等优点。可以检测零件的各种尺寸,如长度、圆、角度、线弧等测量。   利用python+opencv方法可以进行宽度的测量。步骤是先选取出一个矩形,然后进行阈值分割,再进行反色,边缘提取之后进行点的选择,输出坐标做出两条线段,根据线段进行矩形绘制,这样之后就可以计算两条直线之间的距离,也就是我们需要求得的宽度。   OpenCV是一个c++库,用于实时处理计算机视觉方面的问题,涵盖了很多计算机视觉领域的模块。配合python调用c++库,可以很方便地进行宽度测量,实现要求。   步骤如下: 1.导入需要的库 import cv2 import cv2 as cv import numpy as np import imutils 2.读取原图像查看 img = cv2.imread("1.jpg") 3.截取部分图像   手动地进行选取我们感兴趣的部分,然后截取出来。 img = imutils.resize(img, width=500) roi = cv2

210.BMP彩色图像转化为灰度及二值图像

主宰稳场 提交于 2020-05-04 11:06:33
1 概述   多媒体技术是一门综合了多种学科的新技术,其涉及到计算机科学与技术、通信和网络技术、人工智能技术、微电子技术、数字信号处理、图形处 理技术、声像技术等诸多学科。许多新技术的不断出现和体验,带给人们工作和生活巨大的改变。其应用已经渗透到社会生活和工作的各个方面。 1.1背景   多媒体技术是20世纪80年代发展起来的一种新技术,是将文本、图形、图像、动画、声音、视频等信息通过计算机处理,形成人机交互作用的技术。多媒体技术的发展同时也改变了计算机的使用领域,由仅仅限于专业办公领域扩展到各行各业,以及家庭生活和大众娱乐等方方面面。很大程度上改善了我们的学习和生活。随着计算机技术、网络通讯技术、电子信息等技术的快速发展,多媒体技术的应用和发展也面临着更大的机遇。 图1.1 多媒体技术与应用   本课程多媒体技术与应用可分为多媒体实用技术和多媒体技术应用两方面,其中多媒体技术应用于生活、教学、艺术等方面,多媒体实用技术可分为基本概念、多媒体计算机系统、多媒体音频技术、多媒体视频技术、多媒体数据压缩技术、图像与图像处理技术、超文本与超媒体技术、多媒体应用系统设计、多媒体应用系统创作工具、多媒体应用程序设计、图形、图像设计技术、数字音频设计技术、数字视频设计技术几部分,本次课程选题为多媒体应用程序设计中的图形、图像设计技术,基于C语言实现BMP彩色图像转化为灰度及二值图像。 1

“程序设计与算法训练”课程设计“二值图像数字水印技术的实践”

不想你离开。 提交于 2020-05-04 10:25:22
   某 垃圾 大学数据结构课设(题目 抄袭 自某牛逼985高校)。   github项目地址(含报告等): https://github.com/25thengineer/Data-Structure-Course-Design-Practice-of-Binary-Image-Digital-Watermarking-Technology    ( 1 ) 操作系统: Ubuntu 16.04 LTS ;   ( 2 ) 开发工具: Qt 、 Qt Creator 5.12.0 ;   ( 3 ) 实现语言: C++ 。 课程编号:0521733B 课程性质:必修 程序设计与算法训练课程设计报告 院 系: 计算机与信息系 班 级: 姓 名: 学 号: 指导教师: 选题名称: 二值图像数字水印技术实践 2019 年 1 月 20 日 至 2019 年 5 月 5 日   CSDN博客位置: https://blog.csdn.net/u25th_engineer/article/details/89874906 一、 实验概述 1.1 课程设计题目    题目要求对给定的一种简单的二值图像的数字水印算法编程实现。 1.2 课程设计目的 对数字水印技术建立一定的认识,能建立位矩阵、位向量等 ADT,并能用这些 ADT 完成给定二值图像数字水印的嵌入和抽取。 1.3

JSP介绍与语法-java之JSP学习第一天(非原创)

心已入冬 提交于 2020-05-04 00:04:06
文章大纲 一、JSP 简介 二、JSP 生命周期 三、JSP 语法 四、学习资料下载 五、参考文章 一、JSP 简介 1. 什么是Java Server Pages? JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。 JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。 JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。 JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。 2. 为什么使用JSP? JSP程序与CGI程序有着相似的功能,但和CGI程序相比,JSP程序有如下优势: 性能更加优越,因为JSP可以直接在HTML网页中动态嵌入元素而不需要单独引用CGI文件。 服务器调用的是已经编译好的JSP文件,而不像CGI/Perl那样必须先载入解释器和目标脚本。 JSP 基于Java Servlet API,因此,JSP拥有各种强大的企业级Java API,包括JDBC,JNDI,EJB,JAXP等等。 JSP页面可以与处理业务逻辑的

捕获海康威视IPCamera图像,转成OpenCV能够处理的图像(二)

你离开我真会死。 提交于 2020-05-03 23:57:34
海康威视IPCamera图像捕获 捕获海康威视IPCamera图像。转成OpenCV能够处理的IplImage图像(一) 捕获海康威视IPCamera图像。转成OpenCV能够处理的IplImage图像(二) 所使用海康威视摄像头型号: DS-2CD4026FWD-(A)(P) 海康威视IPCamera图像捕获方法有两种: (1)利用SDK里面的 NET_DVR_CaptureJPEGPicture_NEW 进行视频抓图 (2)捕获实时流。将实时流解码成YV12,然后转换成RGB 在上一篇博文里,我介绍了第一种方法,可是由于 NET_DVR_CaptureJPEGPicture_NEW该函数执行须要较长时间,无法实时,所以必须继续另外一种方法。 在这篇博文里,我将介绍另外一种方法,将捕获到的海康威视IPCamera摄像头图像转成OpenCV能处理的IplImage图像。 在实现完 捕获海康威视IPCamera图像,转成OpenCV能够处理的IplImage图像(一) 里面的方法后,发现不能实时。这个系统我是要做给给人看的,是须要实时演示的,这样子肯定是不行的。 纠结了好久!然后查看海康威视《设备网络SDK使用手冊_V4.2》,里面有一个预览模块演示样例程序,可惜我一直执行不了,报出的错误是PROCGETCONSOLEWINDOW

OpenCV3编程入门_毛星云编著_电子工业出版下载 񕄥

北慕城南 提交于 2020-05-02 20:28:57
<h2>下载地址: <a style="color: blue;" href="http://www.gqylpy.com/di/17">http://www.gqylpy.com/di/17</a></h2> 《OpenCV3编程入门》毛星云编著PDF高清完整版-下载 内容提要 OpenCV在计算机视觉领域扮演着重要的角色。作为一个基于开源发行的跨平台计算机视觉库,OpenCV实现了图像处理和计算机视觉方面的很多通用算法。《OpenCV3编程入门》以当前最新版本的OpenCV最常用最核心的组件模块为索引,深入浅出地介绍了OpenCV2和OpenCV3中的强大功能、性能,以及新特性。书本配套的OpenCV2和OpenCV3双版本的示例代码包中,含有总计两百多个详细注释的程序源代码与思路说明。读者可以按图索骥,按技术方向进行快速上手和深入学习。 《OpenCV3编程入门》要求读者具有基础的C/C++知识,适合研究计算机视觉以及相关领域的在校学生和老师、初次接触OpenCV但有一定C/C++编程基础的研究人员,以及已有过OpenCV 1.0编程经验,想快速了解并上手OpenCV2、OpenCV3编程的计算机视觉领域的专业人员。《OpenCV3编程入门》也适合于图像处理、计算机视觉领域的业余爱好者、开源项目爱好者做为通向新版OpenCV的参考手册之用。 《OpenCV3编程入门》配套的