返回值是RGB颜色,首先,你必须知道什么是RGB。 RGB色彩模式是行业标准,是一种颜色,以获得各种不同的颜色,红色(R),绿色(G),蓝(B)三种颜色中的信道变化,以及它们的相互叠加,RGB代表红色,绿色和蓝色的颜色的三个通道,此标准还包括几乎所有的人眼能够感知的颜色的最广泛使用的表色系统,是一个。
和然后它来自该方法,该方法可以被读出的指定区域的图像的ARGB像素值,和专卖店rgbData阵列,一个数据rgbData是基于0xAARRGGBB的格式存储,来表示每个像素的色彩性能和透明度的属性。所以,你应该了解它。
{
int x=5,y=5,width,height;//x,y是需要查找的点的坐标,从0开始
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);//启动GDI+,方便加载位图
Bitmap bmp(_T("E:\\cbmp"));
HBITMAP hBmp = NULL;
bmpGetHBITMAP(Color(0),&hBmp);//获取位图句柄
BITMAP bi = {0};
GetObject(hBmp,sizeof(BITMAP),&bi);//获取位图信息,包括深度,宽高,步长等
width = bibmWidth;height = bibmHeight;//保存宽高
byte pBit = new byte[bibmWidthBytesbibmHeight];
::GetBitmapBits(hBmp,bibmWidthBytesbibmHeight,pBit);//获取位图数据
int n = ybibmWidthBytes + xbibmBitsPixel/8;
int out = RGB(pBit[n+2],pBit[n+1],pBit[n]);//定位到数据中获取颜色信息
GdiplusShutdown(gdiplusToken);//关闭GDI+
}
这里是用GDI+加载位图,也可以用第三方库加载位图获取位图数据然后直接定位像素,使用的时候记得加GDI+的头文件,否则编译不过
假设原为“imagejpg”
代码如下:
clc;
clear;
%读入原图像
image = imread('imagejpg');
s = size(image);
%s=[98,97,3],表示image是3个9897的矩阵,分别代表这个图像每个像素点的R、G、B值
%点[30,30]处的RGB数值:
p_r = image(30,30,1);
p_g = image(30,30,2);
p_b = image(30,30,3);
%分别读取RGB
image_r = image(:,:,1);
image_g = image(:,:,2);
image_b = image(:,:,3);
%测试RGB输出
subplot(2,2,1),imshow(image_r),title('Red component');
subplot(2,2,2),imshow(image_g),title('green component');
subplot(2,2,3),imshow(image_g),title('blue component');
subplot(2,2,4),imshow(image),title('original image');
扩展资料:
1、文件的数据,简单地说,就是一个二维数组,二维数组的行对应图像的高,二维数组的列对应图像的宽,二维数组的元素对应图像的像素,二维数组元素的值就是像素的灰度值。
2、彩色空间是用来表示彩色的数学模型,又被称为彩色模型。RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的。
参考资料:
百度百科-imread
以上就是关于java获取图片RGB的方法有哪些全部的内容,包括:java获取图片RGB的方法有哪些、如何用C++获取一张bmp图片(24位)的RGB量及长宽、如何利用matlab导入并提取jpg彩色图像像素点的坐标及其RGB值想要完整的编码。谢谢哈。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)