java+opencv实现图像灰度化

摘要:
灰度图像中每个像素的颜色值也称为灰度,是指黑白图像中点的颜色深度。范围通常为0到255,白色为255,黑色为0。所谓的灰度值是指颜色的强度,而灰度直方图是指具有与数字图像中的每个灰度值对应的灰度值的像素数。3.使用平均值方法对彩色图像中的三个分量的亮度进行平均以获得灰度值。由于人眼对绿色最敏感,对蓝色最不敏感,因此可以通过根据以下公式对RGB三个分量进行加权平均来获得更合理的灰度图像。

灰度图像上每个像素的颜色值又称为灰度,指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0。所谓灰度值是指色彩的浓淡程度,灰度直方图是指一幅数字图像中,对应每一个灰度值统计出具有该灰度值的象素数。

  灰度就是没有色彩,RGB色彩分量全部相等。如果是一个二值灰度图象,它的象素值只能为0或1,我们说它的灰度级为2。用个例子来说明吧:一个256级灰度的图象,如果RGB三个量相同时,如:RGB(100,100,100)就代表灰度为100,RGB(50,50,50)代表灰度为50。

  现在大部分的彩色图像都是采用RGB颜色模式,处理图像的时候,要分别对RGB三种分量进行处理,实际上RGB并不能反映图像的形态特征,只是从光学的原理上进行颜色的调配。

  图像灰度化处理可以作为图像处理的预处理步骤,为之后的图像分割、图像识别和图像分析等上层操作做准备。


  图像灰度化处理有以下几种方式:

  1. 分量法

  将彩色图像中的三分量的亮度作为三个灰度图像的灰度值,可根据应用需要选取一种灰度图像。

                  java+opencv实现图像灰度化第1张

  2. 最大值法

  将彩色图像中的三分量亮度的最大值作为灰度图的灰度值。

  java+opencv实现图像灰度化第2张

  3. 平均值法

  将彩色图像中的三分量亮度求平均得到一个灰度值。

  java+opencv实现图像灰度化第3张

  4. 加权平均法

  根据重要性及其它指标,将三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,按下式对RGB三分量进行加权平均能得到较合理的灰度图像。

  java+opencv实现图像灰度化第4张

代码实现:

package part;

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class Grayscale {
    public static void main(String[] args) {
            transform();
    }
   private static void transform(){
       System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
       Mat srcImage = Imgcodecs.imread("./data/yasuo.png");
       Mat dstImage = new Mat();
       Imgproc.cvtColor(srcImage, dstImage, Imgproc.COLOR_BGR2GRAY,0);
       Imgcodecs.imwrite("./data/yasuo2.png", dstImage);
   }

}

效果:

原图

java+opencv实现图像灰度化第5张

处理后

java+opencv实现图像灰度化第6张

免责声明:文章转载自《java+opencv实现图像灰度化》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇listview 设置数组为空Linux中 diff与patch的深入分析(转)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

开源软硬一体OpenCV AI Kit(OAK)

开源软硬一体OpenCV AI Kit(OAK) OpenCV 涵盖图像处理和计算机视觉方面的很多通用算法,是非常有力的研究工具之一,且稳居开发者最喜爱的 AI 工具/框架榜首。 1、会不会被USA禁止啊? b. 不会, Myriad X 可以销售,性能稍低 (嵌入式芯片 4TOPS),被禁的是100+TOPS的芯片。 2、opencv开发者要花钱用吗?...

OpenCV学习系列教程第二篇:轨迹条

来自opencv-python官方学习文档,本人谨做翻译和注释,以及一些自己的理解 本文由作者翻译并进行代码验证,转载请注明出处~ 官方文档请参阅:https://docs.opencv.org/4.0.1/db/d5b/tutorial_py_mouse_handling.html 运行环境: windows 10+pycharm professiona...

opencv+opencv_contrib 人脸识别和检测 python开发环境快速搭建(30分钟)图文教程

很多朋友为了学习python、ML(机器学习)、DL(深度学习)、opencv等花费了大量时间配置安装环境(一个朋友花了4天时间才配置好)各种搜索、下载、安装配置,出问题等。 市面上的配置资料很多,选择也成为了难题,实际上呢,很多高效的方法提供给了我们,比如一些集成套件等。本文基于对大量资料的查询、对比和验证,发现利用现有资源,搭建集成开发环境约30...

在Windows上采用Cmake+Visual Studio编译并使用静态opencv库并发布成裸机可执行程序

在Windows上采用Cmake + Visual Studio编译并使用静态opencv库并打包发布成裸机可执行程序 环境:Windows 7 64bit 工具 Cmake-3.11.1 确保是64位 确保安装了GUI Visual Studio 2015 确保是64位 确保采用vc14作为编译器(支持c++11标准部分语法) 原料:Op...

anaconda2下面安装opencv2.4.13.4完成----解决默认安装的问题----Thefunction is not implemented. Rebuild the library with Windows, GTK+ 2.x orCarbon support. If you are on Ubuntu or Debian, install libgtk2.0‑dev and pkg

转载自: http://blog.csdn.net/qingyanyichen/article/details/73550924 本人下载编译安装了opencv2.4.9,oppencv2.4.10,opencv2.4.11,opencv3.0.0,opencv3.1.0,opencv3.2.0版本,总结anaconda下opencv安装经验如下。   1...

用OpenCV实现Photoshop算法(三): 曲线调整

http://blog.csdn.net/c80486/article/details/52499919 系列文章: 用OpenCV实现Photoshop算法(一): 图像旋转 用OpenCV实现Photoshop算法(二): 图像剪切 用OpenCV实现Photoshop算法(三): 曲线调整 用OpenCV实现Photoshop算法(四): 色阶调整...