用photoshop如何将图片中每个像素的RGB数值提取出来

用photoshop如何将图片中每个像素的RGB数值提取出来,第1张

photoshop中打开。

点击左侧工具条的吸管工具。

任意吸一个要查看的地方,前景色就会变成吸住的颜色。

点击窗口找到下边的颜色的选项,快捷键是F8。

在颜色板上面就可以看见RGB值了。

你是要获取rgb的分量值(red/green/blue), 还是图像每个像素点的值

下面是rgb分量值得计算方法;

r = rgb>>16;

g = (rgb>>8)&0xff; 

b = rgb&0xff;

{

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

function RGB(rgb){

  var regexp =  /[0-9]{0,3}/g;

  var re = rgbmatch(regexp);

  alert(re);

  for(var i=0;i

   if(re[i]==""){

    resplice(i,1);

    i--;

   }

  }

  alert(re);

 }

-----------------------------------

转换成16进制

function RGBToHex(rgb){ 

   var regexp = /[0-9]{0,3}/g;  

   var re = rgbmatch(regexp);//利用正则表达式去掉多余的部分,将rgb中的数字提取

   var hexColor = "#"; var hex = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'];  

   for (var i = 0; i < relength; i++) {

        var r = null; var c = re[i]; 

        var hexAr = [];

        while (c > 16){  

              r = c % 16;  

              c = (c / 16) >> 0; 

              hexArpush(hex[r]);  

         } hexArpush(hex[c]);

         if(c < 16&&c != ""){        

             hexArpush(0)

         }

       hexColor += hexArreverse()join(''); 

    }  

   //alert(hexColor)  

   return hexColor;  

}

public class TestActionAction extends Action {

public void doSome(){

try {

//

//ImageIOread(">

以上就是关于用photoshop如何将图片中每个像素的RGB数值提取出来全部的内容,包括:用photoshop如何将图片中每个像素的RGB数值提取出来、AS3怎么获取图片中的RGB三者的值。、如何用C++获取一张bmp图片(24位)的RGB量及长宽等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9400758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存