20060203-All about pixel colors: Truecolor and indexed images

本文探讨了MATLAB中两种基本的像素颜色显示模型:真彩色图像和索引图像。通过实例展示了这两种模型的区别,并演示了如何使用MATLAB进行操作。对于真彩色图像,像素颜色由RGB值直接指定;而索引图像的像素颜色则通过查找当前图的颜色映射来确定。

原文:http://blogs.mathworks.com/steve/2006/02/03/all-about-pixel-colors-part-2/

Let's start by exploring MATLAB's two basic pixel-color display models:

  • Matrix element values specify pixel colors directly
  • Matrix element values specify pixel colors indirectly, through the figure's colormap
Truecolor images

Here's an illustrative image with just three pixels: red, blue, and yellow.

plane_1 = [1 0 1];
plane_2 = [0 0 1];
plane_3 = [0 1 0];
rgb = cat(3, plane_1, plane_2, plane_3);
size(rgb)

image(rgb)
axis image
title('Truecolor image with one red, one blue, and one yellow pixel')
With truecolor images, changing the colormap has no effect on the image colors displayed.

colormap(hot)
title('Changing the figure colormap does not affect the pixel colors')

Indexed images

If the image CData is two-dimensional, then the CData values are treated as lookup indices into the figure's colormap.

s = load('clown')

image(s.X)
colormap(s.map)
title('Indexed image')
Unlike truecolor images, indexed images are affected by changes in the figure's colormap.

colormap(cool)
title('Indexed image displays incorrectly if you use the wrong colormap')

[roslaunch][INFO] 2025-07-03 17:55:30,060: Checking log directory for disk usage. This may take a while. Press Ctrl-C to interrupt [roslaunch][INFO] 2025-07-03 17:55:30,062: Done checking log file disk usage. Usage is <1GB. [roslaunch][INFO] 2025-07-03 17:55:30,062: roslaunch starting with args ['roscore', '--core'] [roslaunch][INFO] 2025-07-03 17:55:30,062: roslaunch env is environ({'SHELL': '/bin/bash', 'ROS_VERSION': '1', 'SESSION_MANAGER': 'local/dhm-MS-7E44:@/tmp/.ICE-unix/1415,unix/dhm-MS-7E44:/tmp/.ICE-unix/1415', 'QT_ACCESSIBILITY': '1', 'COLORTERM': 'truecolor', 'XDG_CONFIG_DIRS': '/etc/xdg/xdg-ubuntu:/etc/xdg', 'XDG_MENU_PREFIX': 'gnome-', 'GNOME_DESKTOP_SESSION_ID': 'this-is-deprecated', 'PKG_CONFIG_PATH': '/opt/ros/noetic/lib/pkgconfig', 'ROS_PYTHON_VERSION': '3', 'LANGUAGE': 'zh_CN:zh', 'GNOME_SHELL_SESSION_MODE': 'ubuntu', 'SSH_AUTH_SOCK': '/run/user/1000/keyring/ssh', 'XMODIFIERS': '@im=ibus', 'DESKTOP_SESSION': 'ubuntu', 'SSH_AGENT_PID': '1313', 'ROS_PACKAGE_PATH': '/opt/ros/noetic/share', 'GTK_MODULES': 'gail:atk-bridge', 'ROSLISP_PACKAGE_DIRECTORIES': '', 'PWD': '/home/dhm/桌面', 'LOGNAME': 'dhm', 'XDG_SESSION_DESKTOP': 'ubuntu', 'XDG_SESSION_TYPE': 'x11', 'GPG_AGENT_INFO': '/run/user/1000/gnupg/S.gpg-agent:0:1', 'XAUTHORITY': '/run/user/1000/gdm/Xauthority', 'GJS_DEBUG_TOPICS': 'JS ERROR;JS LOG', 'WINDOWPATH': '2', 'HOME': '/home/dhm', 'USERNAME': 'dhm', 'IM_CONFIG_PHASE': '1', 'LANG': 'zh_CN.UTF-8', 'ROS_ETC_DIR': '/opt/ros/noetic/etc/ros', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'XDG_CURRENT_DESKTOP': 'ubuntu:GNOME', 'VTE_VERSION': '6003', 'CMAKE_PREFIX_PATH': '/opt/ros/noetic', 'GNOME_TERMINAL_SCREEN': '/org/gnome/Terminal/screen/bfdb9024_d2bb_4d30_9ddc_b81e022971b0', 'INVOCATION_ID': 'b4d4ca367c1048e6a1f65306a8e397aa', 'MANAGERPID': '1115', 'GJS_DEBUG_OUTPUT': 'stderr', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', 'XDG_SESSION_CLASS': 'user', 'PYTHONPATH': '/opt/ros/noetic/lib/python3/dist-packages', 'TERM': 'xterm-256color', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'USER': 'dhm', 'GNOME_TERMINAL_SERVICE': ':1.90', 'DISPLAY': ':0', 'SHLVL': '1', 'ROS_MASTER_URI': 'http://localhost:11311', 'QT_IM_MODULE': 'ibus', 'LD_LIBRARY_PATH': '/opt/ros/noetic/lib', 'XDG_RUNTIME_DIR': '/run/user/1000', 'JOURNAL_STREAM': '8:41457', 'XDG_DATA_DIRS': '/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop', 'PATH': '/opt/ros/noetic/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'GDMSESSION': 'ubuntu', 'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/run/user/1000/bus', 'ROS_ROOT': '/opt/ros/noetic/share/ros', 'ROS_DISTRO': 'noetic', '_': '/opt/ros/noetic/bin/roscore', 'ROS_LOG_FILENAME': '/home/dhm/.ros/log/da59dce8-57f3-11f0-93e5-b1f00ada9779/roslaunch-dhm-MS-7E44-141992.log'}) [roslaunch][INFO] 2025-07-03 17:55:30,062: starting in server mode [roslaunch.parent][INFO] 2025-07-03 17:55:30,062: starting roslaunch parent run [roslaunch][INFO] 2025-07-03 17:55:30,062: loading roscore config file /opt/ros/noetic/etc/ros/roscore.xml [roslaunch][INFO] 2025-07-03 17:55:30,130: Added core node of type [rosout/rosout] in namespace [/] [roslaunch.pmon][INFO] 2025-07-03 17:55:30,130: start_process_monitor: creating ProcessMonitor [roslaunch.pmon][INFO] 2025-07-03 17:55:30,130: created process monitor <ProcessMonitor(ProcessMonitor-1, initial daemon)> [roslaunch.pmon][INFO] 2025-07-03 17:55:30,131: start_process_monitor: ProcessMonitor started [roslaunch.parent][INFO] 2025-07-03 17:55:30,131: starting parent XML-RPC server [roslaunch.server][INFO] 2025-07-03 17:55:30,131: starting roslaunch XML-RPC server [roslaunch.server][INFO] 2025-07-03 17:55:30,131: waiting for roslaunch XML-RPC server to initialize [xmlrpc][INFO] 2025-07-03 17:55:30,131: XML-RPC server binding to 0.0.0.0:0 [xmlrpc][INFO] 2025-07-03 17:55:30,131: Started XML-RPC server [http://dhm-MS-7E44:46863/] [xmlrpc][INFO] 2025-07-03 17:55:30,131: xml rpc node: starting XML-RPC server [roslaunch][INFO] 2025-07-03 17:55:30,142: started roslaunch server http://dhm-MS-7E44:46863/ [roslaunch.parent][INFO] 2025-07-03 17:55:30,142: ... parent XML-RPC server started [roslaunch][INFO] 2025-07-03 17:55:30,142: master.is_running[http://dhm-MS-7E44:11311/] [roslaunch][INFO] 2025-07-03 17:55:30,143: auto-starting new master [roslaunch][INFO] 2025-07-03 17:55:30,143: create_master_process: rosmaster, /opt/ros/noetic/share/ros, 11311, 3, None, False [roslaunch][INFO] 2025-07-03 17:55:30,143: process[master]: launching with args [['rosmaster', '--core', '-p', '11311', '-w', '3']] [roslaunch.pmon][INFO] 2025-07-03 17:55:30,143: ProcessMonitor.register[master] [roslaunch.pmon][INFO] 2025-07-03 17:55:30,143: ProcessMonitor.register[master] complete [roslaunch][INFO] 2025-07-03 17:55:30,143: process[master]: starting os process [roslaunch][INFO] 2025-07-03 17:55:30,143: process[master]: start w/ args [['rosmaster', '--core', '-p', '11311', '-w', '3', '__log:=/home/dhm/.ros/log/da59dce8-57f3-11f0-93e5-b1f00ada9779/master.log']] [roslaunch][INFO] 2025-07-03 17:55:30,143: process[master]: cwd will be [/home/dhm/.ros] [roslaunch][INFO] 2025-07-03 17:55:30,145: process[master]: started with pid [142000] [roslaunch][INFO] 2025-07-03 17:55:30,145: master.is_running[http://dhm-MS-7E44:11311/] [roslaunch][INFO] 2025-07-03 17:55:30,245: master.is_running[http://dhm-MS-7E44:11311/] [roslaunch][INFO] 2025-07-03 17:55:30,346: master.is_running[http://dhm-MS-7E44:11311/] [roslaunch][INFO] 2025-07-03 17:55:30,349: master.is_running[http://dhm-MS-7E44:11311/] [roslaunch][INFO] 2025-07-03 17:55:30,352: ROS_MASTER_URI=http://dhm-MS-7E44:11311/ [roslaunch][INFO] 2025-07-03 17:55:30,356: setting /run_id to da59dce8-57f3-11f0-93e5-b1f00ada9779 [roslaunch][INFO] 2025-07-03 17:55:30,358: setting /roslaunch/uris/host_dhm_ms_7e44__46863' to http://dhm-MS-7E44:46863/ [roslaunch][INFO] 2025-07-03 17:55:30,363: ... preparing to launch node of type [rosout/rosout] [roslaunch][INFO] 2025-07-03 17:55:30,363: create_node_process: package[rosout] type[rosout] machine[Machine(name[] env_loader[None] address[localhost] ssh_port[22] user[None] assignable[True] timeout[10.0])] master_uri[http://dhm-MS-7E44:11311/] [roslaunch][INFO] 2025-07-03 17:55:30,364: process[rosout-1]: env[{'SHELL': '/bin/bash', 'ROS_VERSION': '1', 'SESSION_MANAGER': 'local/dhm-MS-7E44:@/tmp/.ICE-unix/1415,unix/dhm-MS-7E44:/tmp/.ICE-unix/1415', 'QT_ACCESSIBILITY': '1', 'COLORTERM': 'truecolor', 'XDG_CONFIG_DIRS': '/etc/xdg/xdg-ubuntu:/etc/xdg', 'XDG_MENU_PREFIX': 'gnome-', 'GNOME_DESKTOP_SESSION_ID': 'this-is-deprecated', 'PKG_CONFIG_PATH': '/opt/ros/noetic/lib/pkgconfig', 'ROS_PYTHON_VERSION': '3', 'LANGUAGE': 'zh_CN:zh', 'GNOME_SHELL_SESSION_MODE': 'ubuntu', 'SSH_AUTH_SOCK': '/run/user/1000/keyring/ssh', 'XMODIFIERS': '@im=ibus', 'DESKTOP_SESSION': 'ubuntu', 'SSH_AGENT_PID': '1313', 'ROS_PACKAGE_PATH': '/opt/ros/noetic/share', 'GTK_MODULES': 'gail:atk-bridge', 'ROSLISP_PACKAGE_DIRECTORIES': '', 'PWD': '/home/dhm/桌面', 'LOGNAME': 'dhm', 'XDG_SESSION_DESKTOP': 'ubuntu', 'XDG_SESSION_TYPE': 'x11', 'GPG_AGENT_INFO': '/run/user/1000/gnupg/S.gpg-agent:0:1', 'XAUTHORITY': '/run/user/1000/gdm/Xauthority', 'GJS_DEBUG_TOPICS': 'JS ERROR;JS LOG', 'WINDOWPATH': '2', 'HOME': '/home/dhm', 'USERNAME': 'dhm', 'IM_CONFIG_PHASE': '1', 'LANG': 'zh_CN.UTF-8', 'ROS_ETC_DIR': '/opt/ros/noetic/etc/ros', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'XDG_CURRENT_DESKTOP': 'ubuntu:GNOME', 'VTE_VERSION': '6003', 'CMAKE_PREFIX_PATH': '/opt/ros/noetic', 'GNOME_TERMINAL_SCREEN': '/org/gnome/Terminal/screen/bfdb9024_d2bb_4d30_9ddc_b81e022971b0', 'INVOCATION_ID': 'b4d4ca367c1048e6a1f65306a8e397aa', 'MANAGERPID': '1115', 'GJS_DEBUG_OUTPUT': 'stderr', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', 'XDG_SESSION_CLASS': 'user', 'PYTHONPATH': '/opt/ros/noetic/lib/python3/dist-packages', 'TERM': 'xterm-256color', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'USER': 'dhm', 'GNOME_TERMINAL_SERVICE': ':1.90', 'DISPLAY': ':0', 'SHLVL': '1', 'ROS_MASTER_URI': 'http://dhm-MS-7E44:11311/', 'QT_IM_MODULE': 'ibus', 'LD_LIBRARY_PATH': '/opt/ros/noetic/lib', 'XDG_RUNTIME_DIR': '/run/user/1000', 'JOURNAL_STREAM': '8:41457', 'XDG_DATA_DIRS': '/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop', 'PATH': '/opt/ros/noetic/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'GDMSESSION': 'ubuntu', 'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/run/user/1000/bus', 'ROS_ROOT': '/opt/ros/noetic/share/ros', 'ROS_DISTRO': 'noetic', '_': '/opt/ros/noetic/bin/roscore', 'ROS_LOG_FILENAME': '/home/dhm/.ros/log/da59dce8-57f3-11f0-93e5-b1f00ada9779/roslaunch-dhm-MS-7E44-141992.log'}] [roslaunch][INFO] 2025-07-03 17:55:30,387: process[rosout-1]: args[['/opt/ros/noetic/lib/rosout/rosout', '__name:=rosout']] [roslaunch][INFO] 2025-07-03 17:55:30,387: ... created process [rosout-1] [roslaunch.pmon][INFO] 2025-07-03 17:55:30,387: ProcessMonitor.register[rosout-1] [roslaunch.pmon][INFO] 2025-07-03 17:55:30,387: ProcessMonitor.register[rosout-1] complete [roslaunch][INFO] 2025-07-03 17:55:30,387: ... registered process [rosout-1] [roslaunch][INFO] 2025-07-03 17:55:30,387: process[rosout-1]: starting os process [roslaunch][INFO] 2025-07-03 17:55:30,388: process[rosout-1]: start w/ args [['/opt/ros/noetic/lib/rosout/rosout', '__name:=rosout', '__log:=/home/dhm/.ros/log/da59dce8-57f3-11f0-93e5-b1f00ada9779/rosout-1.log']] [roslaunch][INFO] 2025-07-03 17:55:30,388: process[rosout-1]: cwd will be [/home/dhm/.ros] [roslaunch][INFO] 2025-07-03 17:55:30,389: process[rosout-1]: started with pid [142010] [roslaunch][INFO] 2025-07-03 17:55:30,389: ... successfully launched [rosout-1] [roslaunch][INFO] 2025-07-03 17:55:30,389: load_parameters starting ... [roslaunch][INFO] 2025-07-03 17:55:30,391: ... load_parameters complete [roslaunch][INFO] 2025-07-03 17:55:30,391: launch_nodes: launching local nodes ... [roslaunch][INFO] 2025-07-03 17:55:30,391: ... launch_nodes complete [roslaunch.pmon][INFO] 2025-07-03 17:55:30,391: registrations completed <ProcessMonitor(ProcessMonitor-1, started daemon 140174355576576)> [roslaunch.parent][INFO] 2025-07-03 17:55:30,391: ... roslaunch parent running, waiting for process exit [roslaunch][INFO] 2025-07-03 17:55:30,391: spin
最新发布
07-04
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值