2019-12-20 10:36:34 rong11417 阅读数 681
  • OpenCV3.2 Java图像处理视频学习教程

    OpenCV3.2 Java图像处理视频培训课程:基于OpenCV新版本3.2.0详细讲述Java OpenCV图像处理部分内容,包括Mat对象使用、图像读写、 基于常用核心API讲述基本原理、使用方法、参数、代码演示、图像处理思路与流程讲授。主要内容包括opencv像素操作、滤波、边缘提取、直线与圆检测、形态学操作与分水岭、图像金子塔融合重建、多尺度模板匹配、opencv人脸检测、OpenCV跟Tomcat使用实现服务器端图像处理服务。

    4440 人正在学习 去看看 贾志刚

目录

1.介绍

2.模拟图像处理

3.数字图像处理

4.什么是图像

5.数字图像和信号之间的关系

信号

关系

6.如何形成数字图像

7.应用

机器/计算机视觉

计算机图形学

人工智能

信号处理


1.介绍

数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。   数字图像处理的产生和迅速发展主要受三个因素的影响:一是计算机的发展;二是数学的发展(特别是离散数学理论的创立和完善);三是广泛的农牧业、林业、环境、军事、工业和医学等方面的应用需求的增长。

信号处理是电气工程和数学领域的一门学科,处理模拟和数字信号的分析和处理,并处理信号的存储,滤波和其他操作。这些信号包括传输信号,声音或语音信号,图像信号和其他信号等

在所有这些信号中,处理信号类型的字段是在图像处理中完成的,对于该信号,输入是图像,而输出也是图像。顾名思义,它处理图像处理。

它可以进一步分为模拟图像处理和数字图像处理。

2.模拟图像处理

模拟图像处理是对模拟信号进行的。它包括对二维模拟信号的处理。在这种类型的处理中,通过改变电信号通过电手段来操纵图像。常见的例子包括电视图像。

随着时间的流逝,数字图像处理已超过模拟图像处理,这是由于其应用范围更广。

3.数字图像处理

数字图像处理涉及开发对数字图像执行操作的数字系统。

4.什么是图像

图像不过是二维信号。它由数学函数f(x,y)定义,其中x和y是水平和垂直两个坐标。

任意点的f(x,y)值给出了图像该点的像素值。

上图是您现在在计算机屏幕上查看的数字图像的示例。但实际上,该图像不过是二维数组,其范围是0到255之间的数字。

128 30 123
232 123 321
123 77 89
80 255 255

每个数字在任何点都代表函数f(x,y)的值。在这种情况下,值128、230、123分别表示单个像素值。图片的尺寸实际上就是这个二维数组的尺寸。

5.数字图像和信号之间的关系

如果图像是二维阵列,那么它与信号有什么关系?为了了解这一点,我们需要首先了解什么是信号?

信号

在物理世界中,可以将随时间在空间上或任何更高维度上可测量的任何数量视为信号。信号是一种数学函数,它传达一些信息。

信号可以是一维或二维或更高维的信号。一维信号是随时间测量的信号。常见的例子是语音信号。

二维信号是在其他一些物理量上测得的信号。二维信号的示例是数字图像。在下一个教程中,我们将详细介绍如何形成和解释一维或二维信号以及更高的信号。

关系

由于在两个观察者之间的物理世界中传达信息或广播消息的任何事物都是信号。这包括语音或(人声)或图像作为信号。自从我们讲话时,我们的声音就转换为声波/信号,并根据与之交谈的时间而改变。不仅如此,而且数码相机的工作方式(例如从数码相机获取图像时)都涉及将信号从系统的一部分传输到另一部分。

6.如何形成数字图像

由于从相机捕获图像是一个物理过程。阳光被用作能源。传感器阵列用于图像的采集。因此,当阳光照射到物体上时,传感器会感应到该物体反射的光量,并通过感应到的数据量生成连续的电压信号。为了创建数字图像,我们需要将该数据转换为数字形式。这涉及采样和量化。(它们将在后面讨论)。采样和量化的结果导致二维数组或数字矩阵,它们不过是数字图像。

7.应用

机器/计算机视觉

机器视觉或计算机视觉处理开发的系统,其中输入是图像,输出是某些信息。例如:开发一个扫描人脸就可以支付的系统。这个系统看起来像这样。

计算机图形学

计算机图形学处理对象模型中图像的形成,然后由某些设备捕获图像。例如:对象渲染。从对象模型生成图像。这样的系统看起来像这样。

人工智能

人工智能或多或少是将人类智能纳入机器的研究。人工智能在图像处理中有许多应用。例如:开发计算机辅助诊断系统,以帮助医生解释X射线,MRI等图像,然后突出显示要由医生检查的明显部分。

信号处理

信号处理是一个保护伞,而图像处理则位于其中。物体在物理世界(3d世界)中反射的光量穿过相机的镜头,并成为2d信号,因此导致图像形成。然后使用信号处理方法将该图像数字化,然后在数字图像处理中操纵此数字图像。

2019-03-04 13:38:44 qq_42150119 阅读数 2111
  • OpenCV3.2 Java图像处理视频学习教程

    OpenCV3.2 Java图像处理视频培训课程:基于OpenCV新版本3.2.0详细讲述Java OpenCV图像处理部分内容,包括Mat对象使用、图像读写、 基于常用核心API讲述基本原理、使用方法、参数、代码演示、图像处理思路与流程讲授。主要内容包括opencv像素操作、滤波、边缘提取、直线与圆检测、形态学操作与分水岭、图像金子塔融合重建、多尺度模板匹配、opencv人脸检测、OpenCV跟Tomcat使用实现服务器端图像处理服务。

    4440 人正在学习 去看看 贾志刚

图像处理

数字图像处理 利用计算机技术或其他数字技术,对图像信息进行数学运算与加工的处理
模拟图像处理 又称光学图像处理,利用光学透镜或光学照相方法对模拟图像进行处理
光电结合处理 (模拟图像处理与数字图像出入的结合)用光学方法完成巨大运算量的处理,再用计算机对光学处理的结果进行分析处理

图像分析

图像分析 对图像中目标的分类与识别
注意: 图像分析是图像处理更高一级计算机处理过程

数字图像基础

数字图像 能在计算机上显示 + 能被计算机处理的图像
分类: 位图(数字矩阵表示) + 矢量图(矢量数据库表示)
灰度/亮度 一种直观感受,如果是灰度图像,灰度值越高则图像越亮
像素 图像基本单位
基本像素点所代表的信息不同进行图像分类
二值图像:像素点只有黑0与白1 在这里插入图片描述
灰度图像:8位表示一个色素,0表示黑色,255表示白色,1~254表示不同程度的灰色 在这里插入图片描述
RGB图像:单个像素通过Red / Green / Blue 三原色合成比例最终而成的显示颜色 在这里插入图片描述
索引图像:根据索引表查询RGB颜色表来渲染像素点 在这里插入图片描述
索引表原理与优点: 体积小,方便传输,只需要把索引表传输过去,接收方用对应的RGB颜色表还原就行
2019-09-06 00:46:34 zhuhaodonglei 阅读数 133
  • OpenCV3.2 Java图像处理视频学习教程

    OpenCV3.2 Java图像处理视频培训课程:基于OpenCV新版本3.2.0详细讲述Java OpenCV图像处理部分内容,包括Mat对象使用、图像读写、 基于常用核心API讲述基本原理、使用方法、参数、代码演示、图像处理思路与流程讲授。主要内容包括opencv像素操作、滤波、边缘提取、直线与圆检测、形态学操作与分水岭、图像金子塔融合重建、多尺度模板匹配、opencv人脸检测、OpenCV跟Tomcat使用实现服务器端图像处理服务。

    4440 人正在学习 去看看 贾志刚

图像处理
    图像分类
        单通道图像
            二值图像
            灰度图像
        多通道图像
            索引图像
            彩色图像
    常用方法
        图像变换
            傅立叶变换
            沃尔什变换
            离散余弦变换
            小波变换
        图像编码压缩
            对图像施加某种变换或基于区域、特征进行编码的方法
            最常用的无损压缩算法取空间或时间上相邻像素值的差,再进行编码。如游程码。
            有损压缩算法大都采用图像交换的途径,例如对图像进行快速傅里叶变换或离散的余弦变换。
        图像增强
            空间域
                一些平滑去噪的方法:局部求平均值法和中值滤波
                灰度等级直方图处理
            频域
                低通滤波器可以滤除噪声
                高通滤波器可以增强边缘信息
        图像复原
            图像复原要求对图像降质的原因有一定的了解,一般讲应根据降质过程建立“降质模型”,再采用某种滤波方法,恢复或重建原来的图像。
        图像分割
            传统方法用到连通域,连通域的问题在于阈值的选择
        图像描述
            主要使用深度学习来解决
        图像分类
            参考
                https://blog.csdn.net/jiaoyangwm/article/details/79120601
            步骤
                特征提取
                特征编码
                特征汇聚
                分类器
                    支持向量机
                    K 近邻
                    神经网络
                    随机森林
        检测
            直线检测:霍夫变换
            边缘检测
                参考
                    https://blog.csdn.net/u013270326/article/details/81412566
                算子
                    Sobel
                    Roberts
                    Laplacian
                    Canny
        特征提取
            参考:https://blog.csdn.net/Assure_zhang/article/details/80503196
    神经网络发展
        贝叶斯网络
        SVN(支持向量机)
        BP:反向传播进行参数调整网络
        CNN:卷积神经网络
        RNN:循环神经网络

2017-03-05 13:15:14 qq_31718279 阅读数 612
  • OpenCV3.2 Java图像处理视频学习教程

    OpenCV3.2 Java图像处理视频培训课程:基于OpenCV新版本3.2.0详细讲述Java OpenCV图像处理部分内容,包括Mat对象使用、图像读写、 基于常用核心API讲述基本原理、使用方法、参数、代码演示、图像处理思路与流程讲授。主要内容包括opencv像素操作、滤波、边缘提取、直线与圆检测、形态学操作与分水岭、图像金子塔融合重建、多尺度模板匹配、opencv人脸检测、OpenCV跟Tomcat使用实现服务器端图像处理服务。

    4440 人正在学习 去看看 贾志刚

点击这里可以查看我所有关于图形图像处理的文章

简单图片包括Bitmap和BitmapFactory两类。

Bitmap用于显示一张位图,BitmapFactory用于封装一个Bitmap对象。

如果想将Bitmap封装成一个BitmapFactory对象,可以调用BitmapDrawable的构造方法。

Bitmap bitmap = BitmapFactory.decodeFile("draw1.jpg");
BitmapDrawable bd = new BitmapDrawable(bitmap);

如果需要获取BitmapDrawable包装的 Bitmap对象,可以调用 BitmapDrawable的getBitmap()方法。

Bitmap bitmap = bd.getBitmap()

Bitmap类常用函数

编号 方 法 描 述
1 createBitmap(Bitmap source,int x,int y,int width,int height) 从原位图source的指定坐标点(x,y)开始,截取宽为width,长为height的部分,创建一个新的Bitm对象
2 createBitmap(int width,int height,Bitmap.Config cpnfig) 创建一个宽度为width,长为height的新位图
3 getHeight() 获取位图的高度
4 getWidth() 获取位图的宽度
5 isRecycle() 返回该Bitmap对象是否已被收回
6 recycle() 强制一个Bitmap对象立刻收回自己

简单图片实例—图片放大器

说明:这个图片放大器要实现的功能就:是在一张图片上我们点击哪个区域,会对该处的细节进行放大处理。


activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <ImageView
        android:id="@+id/bitmap1"
        android:layout_width="match_parent"
        android:layout_height="240dp"
        android:scaleType="fitXY"/>
    <ImageView
        android:id="@+id/bitmap2"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="10dp"/>
</LinearLayout>

MainActivity.java

package com.file.file;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final ImageView bitmap1 = (ImageView)findViewById(R.id.bitmap1);
        final ImageView bitmap2 = (ImageView)findViewById(R.id.bitmap2);
//        获取图片
        bitmap1.setImageBitmap(BitmapFactory.decodeResource(getResources(),R.drawable.cat));
        bitmap1.setOnTouchListener(new View.OnTouchListener() {
            @Override
//            设置触摸监听器
            public boolean onTouch(View view, MotionEvent motionEvent) {
                BitmapDrawable bitmapDrawable = (BitmapDrawable)bitmap1.getDrawable();
                Bitmap bitmap = bitmapDrawable.getBitmap();
                float xchange = bitmap.getWidth()/(float)bitmap1.getWidth();
                float ychange = bitmap.getHeight()/(float)bitmap1.getHeight();

                int x = (int)(motionEvent.getX() * xchange);
                int y = (int)(motionEvent.getY() * ychange);
//          获取原图和手机上照片显示的比例(一般手机会对图片按比例缩小)


//                我在下面设置的是以(x,y)为中心,长宽各为100的正方形
//                如果X/Y +50 > 图片的长度/宽度,就表名这已经到达边缘
//                那么就将中心设置在距离边缘50位置,以下雷同
                if (x+50>bitmap.getWidth()){
                    x = bitmap.getWidth()-50;
                }
                if (x-50<0){
                    x=50;
                }
                if (y+50>bitmap.getHeight()){
                    y = bitmap.getHeight()-50;
                }
                if (y-50<0){
                    y=50;
                }


                bitmap2.setImageBitmap(Bitmap.createBitmap(bitmap,x-50,y-50,100,100));
                bitmap2.setVisibility(View.VISIBLE);

                return false;
            }
        });
    }

}


实现效果截图
这里写图片描述

2019-03-15 16:47:31 Zhang_ChuanCong 阅读数 130
  • OpenCV3.2 Java图像处理视频学习教程

    OpenCV3.2 Java图像处理视频培训课程:基于OpenCV新版本3.2.0详细讲述Java OpenCV图像处理部分内容,包括Mat对象使用、图像读写、 基于常用核心API讲述基本原理、使用方法、参数、代码演示、图像处理思路与流程讲授。主要内容包括opencv像素操作、滤波、边缘提取、直线与圆检测、形态学操作与分水岭、图像金子塔融合重建、多尺度模板匹配、opencv人脸检测、OpenCV跟Tomcat使用实现服务器端图像处理服务。

    4440 人正在学习 去看看 贾志刚

要点总结

本文书针对刚开始学习或者对数字图像处理一窍不通的读者进行的一次知识普及。

图像及图像处理

图像的分类

连续可见
不连续可见
图像分类
模拟图像又称光学图像
数字图像

图像处理是指对图像信息进行加工以满足人的视觉或应用需求的行为,分为以下几方面:

图像处理
图像变换
图像增强
图像恢复
图像压缩编码
图像的特征提取
形态学图像处理方法等

数字图像处理

数字图像处理又称计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。即利用计算机对数字图像进行去除噪声、增强、复原、分割、特征提取、识别等一系列操作,从而获得某种预期结果的技术。

数字图像处理与计算机图形学的区别:

数字图像处理:对景物或图像的分析技术,是从图像到图像的处理过程;
计算机图形学:通过算法和程序在显示设备上构造图形,是从数据到图像的处理过程。

数字图像处理的目的

  1. 提高图像的视感质量 。如进行图像的亮度、彩色变换,增强或抑制图像中的某些成分,对图像进行几何变换达到艺术效果等;
  2. 提取图像中所包含的某些特征或特殊信息,这些被提取的特征或信息往往为计算机分析图像提供便利。提取特征或信息的过程是模式识别或计算机视觉的预处理。提取的特征可以包括很多方面,如频域特征、灰度或颜色特征、边界特征、区域特征、纹理特征、形状特征、拓扑特征和关系结构等。
  3. 图像数据的变换、编码和压缩,以便于图像的存储和传输;

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

  1. 图像数字化: 将一幅图像以数字的形式表示,主要包括采样和量化两个过程;

  2. 图像增强: 主要用来改善图像的对比度,突出感兴趣的图像信息,提高图像的目视解释效果,它包括灰度拉伸、平滑、锐化、滤波、变换、彩色合成、代数运算、融合等;

  3. 图像恢复/复原: 去除和压抑成像过程中由各种因素影响而导致的图像失真;

  4. 图像编码: 简化图像的表示,压缩表示图像的数据,以便于存储和传输;

  5. 图像的重建: 由二维图像重建三维图像(如CT);

  6. 图像分割与特征提取: 图像分割用于从背景中分割出感兴趣的物体目标,分割的结果可作为监督分类的训练区。图像的特征提取包括形状特征、纹理特征、颜色特征等;

  7. 图像分析: 对图像中的不同对象进行分割、分类、识别、描述和解释,图像分类:按照特定的分类系统对图像中像素的归属类别进行划分;

  8. 图像隐藏:

  • 媒体信息的相互隐藏;
  • 数字水印;
  • 图像信息伪装。
  1. 图像通信: 传送和接收图像信号。

图像工程的三个层次

  1. 图像处理(从图像到解释): 主要对图象进行各种加工以改善图象的视觉效果、或突出有用信息,并为自动识别打基础,或通过编码以减少对其所需存储空间、传输时间或传输带宽的要求。图像输入 -> 图像处理(增强、复原、编码、压缩等)-> 图像输出;
    特点:输入是图像,输出也是图像,即图像之间进行的变换。

  2. 图像分析: 主要对图像中感兴趣的目标进行检测(或分割)和测量,以获得它们的客观信息,从而建立对图像中目标的描述,是一个从图像到数值或符号的过程。图像输入->图像预处理(增强、复原)->图像分割 ->特征提取 ->图像分类 ->类别、识别结果。
    特点:输入是图像,输出是数据。

  3. 图像理解: 图像理解的重点是在图像分析的基础上,进一步研究图像中各目标的性质和它们之间相互的联系,并得出对图像内容含义的理解(对象识别)及对原来客观场景的解释(计算机视觉),从而指导和规划行动。图像输入->图像预处理 ->图像描述 ->图像分析和理解 ->图像解释。
    特点:以客观世界为中心,借助知识、经验等来把握整个客观世界。“输入是数据,输出是理解。

    区别和联系:
    狭义图像处理是低层操作,它主要在图像像素级上进行处理,处理的数据量非常大;图像分析则进入了中层,经分割和特征提取,把原来以像素构成的图像转变成比较简洁的、非图像形式的描述;图像理解是高层操作,它是对描述中抽象出来的符号进行推理,其处理过程和方法与人类的思维推理有许多类似之处。

参考

[1] (美)冈萨雷斯,(美)伍兹.数字图像处理第三版.北京:电子工业出版社2011.
[2] 数字图像处理的三个层次:https://blog.csdn.net/real_myth/article/details/52470698 .

数字图像处理笔记

阅读数 142

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