OpenCV(五):图像颜色空间转换

目录

1.图像颜色空间介绍

[RGB 颜色空间](#RGB 颜色空间)

[2.HSV 颜色空间](#2.HSV 颜色空间)

[3.RGBA 颜色空间](#3.RGBA 颜色空间)

2.图像数据类型间的互相转换convertTo()

3.不同颜色空间互相转换cvtColor()

[4.Android JNI demo](#4.Android JNI demo)


1.图像颜色空间介绍

RGB 颜色空间

RGB 颜色空间是最常见的颜色表示方式之一,其中 R、G、B 分别表示红色、绿色和蓝色分量。在 OpenCV 中,RGB 图像可以通过 CvType.CV_8UC3 的类型来表示,其中 8U 表示 8 位无符号整数,C3 表示三个通道。

2.HSV 颜色空间

HSV (Hue, Saturation, Value) 颜色空间是一种将颜色表示为色调、饱和度和亮度三个分量的方式。色调表示颜色的基本色相,取值范围为 0 到 360;饱和度表示颜色的纯度,取值范围为 0 到 1;亮度表示颜色的亮度,取值范围也为 0 到 1。在 OpenCV 中,HSV 图像可以通过 CvType.CV_8UC3 的类型来表示。

3.RGBA 颜色空间

在 RGBA 颜色空间中,每个分量的取值范围为 0 到 255,其中 R、G、B 分别表示红色、绿色和蓝色分量,取值范围为 0-255,而 A 表示透明度分量,取值范围为 0-255,其中 0 表示完全透明,255 表示完全不透明。

2.图像数据类型间的互相转换convertTo()

void cv::Mat::convertTo ( OutputArray m,

int rtype,

double alpha,

double beta ,

  • m:输出图像
  • rtype: 转换后数据类型
  • alpha:缩放系数
  • beta:平移系数

3.不同颜色空间互相转换cvtColor()

void cv::cvtColor ( InputArray src,

OutputArray dst,

int code,

int dstCn

  • src:待转换颜色模型的原始图像。
  • dst:转换颜色模型后的目标图像。
  • code: 颜色空间转换的标志,如由RGB空间到HSV空间。
  • dstCn:目标图像中的通道数,如果参数为0,则从src和代码中自动导出通道数。

4.Android JNI demo

#include <jni.h>

#include <string>

#include <android/bitmap.h>

#include <opencv2/opencv.hpp>

#include <iostream>

#include <android/log.h>

using namespace cv;

using namespace std;

extern "C"

JNIEXPORT void JNICALL

Java_com_example_myapplication_MainActivity_opencv_1test(JNIEnv *env, jclass clazz,

jobject bitmap) {

AndroidBitmapInfo info;

void *pixels;

CV_Assert(AndroidBitmap_getInfo(env, bitmap, &info) >= 0);

//判断图片是位图格式有RGB_565 、RGBA_8888

CV_Assert(info.format == ANDROID_BITMAP_FORMAT_RGBA_8888 ||

info.format == ANDROID_BITMAP_FORMAT_RGB_565);

CV_Assert(AndroidBitmap_lockPixels(env, bitmap, &pixels) >= 0);

CV_Assert(pixels);

//将bitmap转化为Mat类

Mat image(info.height, info.width, CV_8UC4, pixels);

Mat image32;

image.convertTo(image32,CV_32F,1/255,0);

Mat HSV;

cvtColor(image,HSV,COLOR_BGR2HSV);

Mat gray;

cvtColor(image,gray,COLOR_BGR2GRAY);

imwrite("/sdcard/DCIM/gray.jpg",gray);//保存图像到手机相册

imwrite("/sdcard/DCIM/HSV.jpg",HSV);

}

(原图) (HSV) (gray)

相关推荐
2403_8757368711 分钟前
道品科技智慧农业中的自动气象检测站
网络·人工智能·智慧城市
断墨先生16 分钟前
uniapp—android原生插件开发(3Android真机调试)
android·uni-app
学术头条34 分钟前
AI 的「phone use」竟是这样练成的,清华、智谱团队发布 AutoGLM 技术报告
人工智能·科技·深度学习·语言模型
准橙考典35 分钟前
怎么能更好的通过驾考呢?
人工智能·笔记·自动驾驶·汽车·学习方法
ai_xiaogui38 分钟前
AIStarter教程:快速学会卸载AI项目【AI项目管理平台】
人工智能·ai作画·语音识别·ai写作·ai软件
孙同学要努力43 分钟前
《深度学习》——深度学习基础知识(全连接神经网络)
人工智能·深度学习·神经网络
喵~来学编程啦1 小时前
【论文精读】LPT: Long-tailed prompt tuning for image classification
人工智能·深度学习·机器学习·计算机视觉·论文笔记
深圳市青牛科技实业有限公司2 小时前
【青牛科技】应用方案|D2587A高压大电流DC-DC
人工智能·科技·单片机·嵌入式硬件·机器人·安防监控
无极程序员2 小时前
PHP常量
android·ide·android studio
水豚AI课代表2 小时前
分析报告、调研报告、工作方案等的提示词
大数据·人工智能·学习·chatgpt·aigc