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

 我来答
leaves__147
2020-02-19
知道答主
回答量:4
采纳率:0%
帮助的人:633
展开全部

假设原图片为“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

帐号已注销
2020-03-07 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:166万
展开全部

假设原图片为“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

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大野瘦子
高粉答主

2019-10-18 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:34.2万
展开全部

假设图片为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');  

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无求饱
推荐于2017-11-25 · TA获得超过132个赞
知道答主
回答量:27
采纳率:0%
帮助的人:48.1万
展开全部
假设图片为image.jpg ,而且是500*500的像素
代码为:
A = imread('image.jpg');

得到的三维矩阵A, size(A) =[500 500 3],那个3就是RGB三个值所占空间,如果你想去(10,10)的RGB3个值,则A(10,10, :)即可得到RGB的一个三维的向量。
更多追问追答
追问
这个三位向量就是某个像素点的RGB值?像素点坐标怎么确定?
追答
三维向量就是三个数组成的向量,你知道吧,RGB是指的红(R)、绿(G)、蓝(B)三个值。坐标就是图片上像素点所对应的位置啊,也就是说有了这个矩阵A之后,你就可知道图片的每一个像素点所对应的RGB值了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式