2017-09-25 09:41:08 VonSdite 阅读数 3936
  • 学习OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频教程

    OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频培训课程概况:教程中会讲解到基于opencv视频和摄像机录制、播放和播放进度控制,多视频图像合并、多视频图像融合、剪切、视频亮度、对比度、尺寸(近邻插值(手动实现),双线性插值,图像金字塔)、颜色格式(灰度图,二值化(阈值)),旋转镜像,视频裁剪(ROI),视频水印(ROI+weight),导出处理后的视频(包含音频,使用ffmpeg工具对音频进行抽取、剪切和终于opencv处理的视频合并)。

    19981 人正在学习 去看看 夏曹俊

新博客地址: vonsdite.cn

数字图像处理研究的主要内容

  •     数字图像处理是指将一幅图像变成另一幅经过修改(改进)的图像,是一个由图像到图像的过程。其主要研究内容如下:
    
    • 图像变换
    • 图像增强
    • 图像恢复
    • 图像分割
    • 数学形态学
    • 图像编码与压缩

图像变换

  • 灰度变换:包括灰度线性变换、阈值变换、窗口变换、灰度拉伸与均衡等。灰度变换目的在于:控制图像灰度直方图的分布,改善输出的图像。

  • 几何变换:图像平移、镜像、转置、缩放和旋转等。对于数字化标定、图像配准、校正、投影及特殊视觉特技效果的生成十分有用。

  • 正交变换:包括傅立叶变换、离散余弦变换、Walsh变换、小波变换等。正交变换是将图像的二位数据矩阵看作特殊的二维信号,并将其变换到频域,从而加强对图像信息的辨识与理解。广泛运用于图像特征提取、图像增强、图像压缩和图像识别领域。


图像增强

  •   空域滤波增强和频域滤波增强技术,具体方法如**图像模板操作、平滑、锐化、中值滤波、低/高通滤波、伪色彩增强等。**
    
  • 主要目的是根据任务目标突出图像中感兴趣的信息,消除干扰,改善图像的视觉效果或增强便于机器识别的信息。


图像恢复

  • 根据图像退化模型,消除或减轻在图象获取及传输过程中造成的图像品质下降即退化现象,恢复图像的本来面目。退化包括由成像系统光学特性造成的歧变以及噪声和相对运动造成的模糊等情况。 
    
  • 运动模糊图像的恢复

    运动模糊图像的恢复


图像分割

  •     包括**阈值分割法、基于梯度的分割法及边界检测与跟踪**等。
    
  • 主要目的是根据图像的某些特征将图像划分为互不重叠的区域,以便于对图像中的物体或目标进行分析与识别。图像分割是图像分析和理解的基础


数学形态学

  •     形态学运算主要用来处理**二值图像**,其数学基础是集合论。常见的形态学运算有**膨胀、腐蚀、开运算、闭运算、细化**等。
    
  • 数学形态学是分析图像几何特征的有利工具。

图像编码与压缩

  • 要在计算机连续显示分辨率为1280x1024的24位真彩色高质量的电视图像,按每秒30祯计算,显示1分钟需要6.6GB。可见,数字图像数据的压缩问题是多媒体技术的重要研究课题。
    
  • 图像编码与压缩就是对要处理的图像数据用一定的规则进行变换和组合,从而达到以尽可能小的代码来表示尽可能多的数据信息的目的,常见的压缩编码有**霍夫曼编码、游程编码、JPEG编码**等。
    
  • 研究压缩图像数据的方法,需要研究并利用图像的冗余特征如统计冗余、生理视觉冗余、知识冗余等。
    
2018-08-07 16:36:54 chenyuping333 阅读数 22469
  • 学习OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频教程

    OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频培训课程概况:教程中会讲解到基于opencv视频和摄像机录制、播放和播放进度控制,多视频图像合并、多视频图像融合、剪切、视频亮度、对比度、尺寸(近邻插值(手动实现),双线性插值,图像金字塔)、颜色格式(灰度图,二值化(阈值)),旋转镜像,视频裁剪(ROI),视频水印(ROI+weight),导出处理后的视频(包含音频,使用ffmpeg工具对音频进行抽取、剪切和终于opencv处理的视频合并)。

    19981 人正在学习 去看看 夏曹俊

 

一、图像二值化基本原理:

对灰度图像进行处理,设定阈值,在阈值中的像素值将变为1(白色部分),阈值为的将变为0(黑色部分)。

二、图像二值化处理步骤:

(1)先对彩色图像进行灰度化

//img为原图,imgGray为灰度图
cvtColor(img, imgGray, CV_BGR2GRAY);

(2)对灰度图进行二值化

//imgGray为灰度图,result为二值图像
//100~255为阈值,可以根据情况设定
//在阈值中的像素点将变为0(白色部分),阈值之外的像素将变为1(黑色部分)。
threshold(imgGray, result, 100, 255, CV_THRESH_BINARY);

三、demo

#include<iostream>
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\core\core.hpp>
#include <opencv2\imgproc\imgproc.hpp>

using namespace std;
using namespace cv;

int main()
{
	Mat img, imgGray,result;
	img = imread("test.jpg");
	if (!img.data) {
		cout << "Please input image path" << endl;
		return 0;
	}
	imshow("原图", img);
	cvtColor(img, imgGray, CV_BGR2GRAY);
	imshow("灰度图", imgGray);
	//blur(imgGray, imgGray, Size(3, 3));
	threshold(imgGray, result, 100, 255, CV_THRESH_BINARY);
	imshow("二值化后的图", result);
	imwrite("二值化的二维码.jpg", result);
	cout << "图片已保存" << endl;
	waitKey();

    return 0;
}

四、效果:

 

2019-11-29 10:28:09 AndroidAlvin 阅读数 23
  • 学习OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频教程

    OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频培训课程概况:教程中会讲解到基于opencv视频和摄像机录制、播放和播放进度控制,多视频图像合并、多视频图像融合、剪切、视频亮度、对比度、尺寸(近邻插值(手动实现),双线性插值,图像金字塔)、颜色格式(灰度图,二值化(阈值)),旋转镜像,视频裁剪(ROI),视频水印(ROI+weight),导出处理后的视频(包含音频,使用ffmpeg工具对音频进行抽取、剪切和终于opencv处理的视频合并)。

    19981 人正在学习 去看看 夏曹俊

阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680

本篇文章将通过灰度化和二值化&二值图像的腐蚀和膨胀的原理来介绍opencv图像处理

灰度化和二值化

1.1、图像二值化基本原理:

对灰度图像进行处理,设定阈值,在阈值中的像素值将变为1(白色部分),阈值为的将变为0(黑色部分)。

1.2、图像二值化处理步骤:

(1)先对彩色图像进行灰度化

//img为原图,imgGray为灰度图
cvtColor(img, imgGray, CV_BGR2GRAY);

(2)对灰度图进行二值化

//imgGray为灰度图,result为二值图像
//100~255为阈值,可以根据情况设定
//在阈值中的像素点将变为0(白色部分),阈值之外的像素将变为1(黑色部分)。
threshold(imgGray, result, 100, 255, CV_THRESH_BINARY);

1.3、demo

#include<iostream>
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\core\core.hpp>
#include <opencv2\imgproc\imgproc.hpp>
 
using namespace std;
using namespace cv;
 
int main()
{
    Mat img, imgGray,result;
    img = imread("test.jpg");
    if (!img.data) {
        cout << "Please input image path" << endl;
        return 0;
    }
    imshow("原图", img);
    cvtColor(img, imgGray, CV_BGR2GRAY);
    imshow("灰度图", imgGray);
    //blur(imgGray, imgGray, Size(3, 3));
    threshold(imgGray, result, 100, 255, CV_THRESH_BINARY);
    imshow("二值化后的图", result);
    imwrite("二值化的二维码.jpg", result);
    cout << "图片已保存" << endl;
    waitKey();
 
    return 0;
}

1.4、效果:

19956127-0e08fb5e8316a0f4.png

二、腐蚀与膨胀

2.1 腐蚀的原理:

二值图像前景物体为1,背景为0.假设原图像中有一个前景物体,那么我们用一个结构元素去腐蚀原图的过程是这样的:遍历原图像的每一个像素,然后用结构元素的中心点对准当前正在遍历的这个像素,然后取当前结构元素所覆盖下的原图对应区域内的所有像素的最小值,用这个最小值替换当前像素值。由于二值图像最小值就是0,所以就是用0替换,即变成了黑色背景。从而也可以看出,如果当前结构元素覆盖下,全部都是背景,那么就不会对原图做出改动,因为都是0.如果全部都是前景像素,也不会对原图做出改动,因为都是1.只有结构元素位于前景物体边缘的时候,它覆盖的区域内才会出现0和1两种不同的像素值,这个时候把当前像素替换成0就有变化了。因此腐蚀看起来的效果就是让前景物体缩小了一圈一样。对于前景物体中一些细小的连接处,如果结构元素大小相等,这些连接处就会被断开。

2.2 膨胀的原理:

二值图像前景物体为1,背景为0.假设原图像中有一个前景物体,那么我们用一个结构元素去膨胀原图的过程是这样的:遍历原图像的每一个像素,然后用结构元素的中心点对准当前正在遍历的这个像素,然后取当前结构元素所覆盖下的原图对应区域内的所有像素的最大值,用这个最大值替换当前像素值。由于二值图像最大值就是1,所以就是用1替换,即变成了白色前景物体。从而也可以看出,如果当前结构元素覆盖下,全部都是背景,那么就不会对原图做出改动,因为都是0.如果全部都是前景像素,也不会对原图做出改动,因为都是1.只有结构元素位于前景物体边缘的时候,它覆盖的区域内才会出现0和1两种不同的像素值,这个时候把当前像素替换成1就有变化了。因此膨胀看起来的效果就是让前景物体胀大了一圈一样。对于前景物体中一些细小的断裂处,如果结构元素大小相等,这些断裂的地方就会被连接起来。
参考
https://blog.csdn.net/chenyuping333/article/details/81483593
https://blog.csdn.net/woainishifu/article/details/60778033
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680

2018-03-18 23:32:30 weixin_38757342 阅读数 2244
  • 学习OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频教程

    OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频培训课程概况:教程中会讲解到基于opencv视频和摄像机录制、播放和播放进度控制,多视频图像合并、多视频图像融合、剪切、视频亮度、对比度、尺寸(近邻插值(手动实现),双线性插值,图像金字塔)、颜色格式(灰度图,二值化(阈值)),旋转镜像,视频裁剪(ROI),视频水印(ROI+weight),导出处理后的视频(包含音频,使用ffmpeg工具对音频进行抽取、剪切和终于opencv处理的视频合并)。

    19981 人正在学习 去看看 夏曹俊

灰度的阈值变换是指将一幅灰度图像变为黑白二值图像,首先指定一个阈值,如果图像中的某像素值小于这个阈值,则将该像素的灰度值设置为0,否则,将该像素的灰度值设置为255。

关于阈值的选取有多种方法。


2013-04-19 15:46:59 wangyu21505115 阅读数 472
  • 学习OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频教程

    OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频培训课程概况:教程中会讲解到基于opencv视频和摄像机录制、播放和播放进度控制,多视频图像合并、多视频图像融合、剪切、视频亮度、对比度、尺寸(近邻插值(手动实现),双线性插值,图像金字塔)、颜色格式(灰度图,二值化(阈值)),旋转镜像,视频裁剪(ROI),视频水印(ROI+weight),导出处理后的视频(包含音频,使用ffmpeg工具对音频进行抽取、剪切和终于opencv处理的视频合并)。

    19981 人正在学习 去看看 夏曹俊

图像处理步骤

阅读数 670

图像处理总结

阅读数 100

没有更多推荐了,返回首页