寧波男科醫(yī)院哪家好哈爾濱優(yōu)化網(wǎng)站公司
目錄
1.圖像顏色空間介紹
RGB 顏色空間
2.HSV 顏色空間
3.RGBA 顏色空間
2.圖像數(shù)據(jù)類型間的互相轉(zhuǎn)換convertTo()
3.不同顏色空間互相轉(zhuǎn)換cvtColor()
?4.Android JNI demo
1.圖像顏色空間介紹
-
RGB 顏色空間
RGB 顏色空間是最常見(jiàn)的顏色表示方式之一,其中 R、G、B 分別表示紅色、綠色和藍(lán)色分量。在 OpenCV 中,RGB 圖像可以通過(guò) CvType.CV_8UC3 的類型來(lái)表示,其中 8U 表示 8 位無(wú)符號(hào)整數(shù),C3 表示三個(gè)通道。
2.HSV 顏色空間
?HSV (Hue, Saturation, Value) 顏色空間是一種將顏色表示為色調(diào)、飽和度和亮度三個(gè)分量的方式。色調(diào)表示顏色的基本色相,取值范圍為 0 到 360;飽和度表示顏色的純度,取值范圍為 0 到 1;亮度表示顏色的亮度,取值范圍也為 0 到 1。在 OpenCV 中,HSV 圖像可以通過(guò) CvType.CV_8UC3 的類型來(lái)表示。
3.RGBA 顏色空間
在 RGBA 顏色空間中,每個(gè)分量的取值范圍為 0 到 255,其中 R、G、B 分別表示紅色、綠色和藍(lán)色分量,取值范圍為 0-255,而 A 表示透明度分量,取值范圍為 0-255,其中 0 表示完全透明,255 表示完全不透明。
2.圖像數(shù)據(jù)類型間的互相轉(zhuǎn)換convertTo()
void cv::Mat::convertTo ( OutputArray m,
int? ? ? ? ?rtype,
double? ?alpha,
double? ?beta ,
)? ? ??
- m:輸出圖像
- rtype: 轉(zhuǎn)換后數(shù)據(jù)類型
- alpha:縮放系數(shù)
- beta:平移系數(shù)
3.不同顏色空間互相轉(zhuǎn)換cvtColor()
void cv::cvtColor ( InputArray? src,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? OutputArray? dst,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?int? ?code,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?int? ??dstCn?
)
- src:待轉(zhuǎn)換顏色模型的原始圖像。
- dst:轉(zhuǎn)換顏色模型后的目標(biāo)圖像。
- code: 顏色空間轉(zhuǎn)換的標(biāo)志,如由RGB空間到HSV空間。
- dstCn:目標(biāo)圖像中的通道數(shù),如果參數(shù)為0,則從src和代碼中自動(dòng)導(dǎo)出通道數(shù)。
?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 JNICALLJava_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_8888CV_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轉(zhuǎn)化為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);//保存圖像到手機(jī)相冊(cè)imwrite("/sdcard/DCIM/HSV.jpg",HSV);}
? ? ? ? ??
? ? ? ? ?
? ? ?(原圖)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (HSV)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (gray)