找回密码
 注册
关于网站域名变更的通知
查看: 502|回复: 2
打印 上一主题 下一主题

在MATLAB中对图像直接操作像素点进行颜色变换

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-12-12 10:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

0 m6 l- g; m; K& _7 T需求
* m# R' n9 \% p0 {
% \7 w: g- w% B( V4 Q; ~; Z$ d        直接操作RGB图像的像素点,进行颜色的相关操作。& ^" c. H* v  E- W2 X0 F, T

: l. {* M; f( L5 k6 z           掌握这个,必须对MATLAB中矩阵的操作有所熟悉,特别是整行、整列的操作。
% m  E. F1 [; g! i7 v. B- Q
$ J# O3 q, d$ _7 y( m5 X' t/ A     如:
* y. J! h3 n$ K1 v- t8 b, L" ?& {  f7 t$ j8 r- D0 W
           J = [1 2 3; 4 5 6; 7 8 9]; ——这里定义了一个三行三列的矩阵。8 A$ B3 o- K: o+ O

. x, L0 v; K7 c, I7 v           J[:, 1] = 0; ——直接操作了J矩阵中每一行的第1列 此时J = [0 2 3; 0 5 6; 0 8 9]$ H9 [8 ~% V2 q9 d: \2 M; Q
* ~) h4 t+ \( D  N. V( H0 t/ s
           其他如行操作用法类似,不再赘述。' E' Q8 L# Z+ P1 D7 |( ?2 P. w

/ F# Y, M" g' N, y5 f- ?, E2 ^" P     # x' N' C5 h" H

/ ]# r+ B. Y% K: s! e- e- Y     下面我们对一副图像进行直接操作,把其中的红色部分改为蓝色。
: q9 N4 J3 X/ F, M% H+ J# b, G' B# Q3 h+ X! _
代码如下:
( t3 ^3 B$ I4 C: Y% q7 g/ s: z
3 i& t$ U. W9 k' V# m! c
  • % BY   SCOTT                                                                                                                                              % red2blue
  • % change red to blue
  • clear all;
  • clc;
  • rgb = imread('red2blue.png');
  • figure;
  • imshow(rgb);
  • R=rgb(:,:,1); %red
  • G=rgb(:,:,2); %green
  • B=rgb(:,:,3); %blue
  • [x,y,z]=size(rgb);
  • for i=1:x
  •     for j=1:y
  •         if( (R(i,j) >= 180) && (R(i,j) <=255) && (G(i,j) <50) && (B(i,j) <50) )
  •             R(i,j) = 0;
  •             G(i,j) = 162;
  •             B(i,j) = 232;
  •         end
  •     end
  • end
  • % in this way
  • % blue(:,:,1)=R(:,:);
  • % blue(:,:,2)=G(:,:);
  • % blue(:,:,3)=B(:,:);
  • % another way
  • for i=1:x
  •     for j=1:y
  •         blue(i,j,1) = R(i,j);
  •         blue(i,j,2) = G(i,j);
  •         blue(i,j,3) = B(i,j);
  •     end
  • end
  • figure;
  • imshow(blue);5 p# Z6 k0 E/ N7 w) ]0 \$ @
   , t) k5 y, v" M( `' R; _! ]
; s" Q. f4 N, t( {' ?% I+ L/ O
5 J- R) U, L" U  q3 C% J
运行结果:: h; Q0 q8 W: E! \) `  Z" {
转换前:
0 P- B3 J/ F; ?8 {
" v2 {- F! x2 ?9 g, S4 Y
. N9 ^# p& r8 Q* Q6 E
. [1 M- c0 A* B" I1 Y% c6 \" ]: a
转换后:. o' v6 ~! O; X- i8 v0 {7 t
4 F  f# t& a4 W0 g% x* m
5 G" Z$ @6 l3 J5 G! V5 ^; j
* d0 T1 c/ q6 v/ p5 t
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-23 22:56 , Processed in 0.171875 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表