如何利用matlab导入并提取jpg彩色图像像素点的坐标及其RGB值?想要完整的编码。谢谢哈。

2024-11-24 10:01:19
推荐回答(4个)
回答1:

假设原图片为“image.jpg”

代码如下:

clc;

clear;

%读入原图像

image = imread('image.jpg');

s = size(image);

%s=[98,97,3],表示image是3个98*97的矩阵,分别代表这个图像每个像素点的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

回答2:

假设原图片为“image.jpg”。

可以使用 Python Image Library 做,load() 函数会返回一个对象,这个对象我们可以把它当作一个二维数组对待,而数组中存放的就是点的 RGB 值,可以很容易地访问到任何像素点的 RGB 值:

from PIL import Image

  # 可以支持很多种图片格式.

im = Image.open("your_picture.jpg") 

pix = im.load()

  # 获得图片的尺度,可以用于迭代

print im.size   

# 获得某个像素点的 RGB 值,像素点坐标由 [x, y] 指定

print pix[x,y] 

  # 设置 [x, y] 点的 RGB 的值为 value 

pix[x,y] = value

扩展资料:

在电脑中,RGB的所谓“多少”就是指亮度,并使用整数来表示。通常情况下,RGB各有256级亮度,用数字表示为从0、1、2...直到255。注意虽然数字最高是255,但0也是数值之一,因此共256级。如同2000年到2010年共是11年一样。

按照计算,256级的RGB色彩总共能组合出约1678万种色彩,即256×256×256=16777216。通常也被简称为1600万色或千万色。也称为24位色(2的24次方)。

参考资料来源:百度百科-RGB

回答3:

假设图片为image.jpg ,而且是500*500的像素。

代码为:

A = imread('image.jpg');

得到的三维矩阵A, size(A) =[500 500 3],那个3就是RGB三个值所占空间,如果你想去(10,10)的RGB3个值,则A(10,10, :)即可得到RGB的一个三维的向量。

扩展资料:

注意事项

Matlab 读取彩色图像是三维数组,图像的坐标是以左上角为(0,0)点,彩色图像形成的三维数组中前两位表示图像的像素点的坐标,第三位为1时表示是图像中R的值,为2时表示G的值,为3时表示B的值。故若要对一个彩色图像分别读取R,G,B时,采用下述代码即可。

% 2017-3-14 

% write by Mr.Han

clc;

clear;

%读入原图像及获取大小

image = imread('1.jpg');

%   分别读取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');  

回答4:

假设图片为image.jpg ,而且是500*500的像素
代码为:
A = imread('image.jpg');

得到的三维矩阵A, size(A) =[500 500 3],那个3就是RGB三个值所占空间,如果你想去(10,10)的RGB3个值,则A(10,10, :)即可得到RGB的一个三维的向量。