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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
2 N7 j8 ]1 J' m+ G9 x9 n& s
需求) W+ Y' _+ G- j- y
5 H& w" Z' v- d- p( O
        直接操作RGB图像的像素点,进行颜色的相关操作。
. d+ l+ X1 z+ p( H0 e1 K' O
# ^1 H; W5 E, h           掌握这个,必须对MATLAB中矩阵的操作有所熟悉,特别是整行、整列的操作。: E, }0 D0 p0 X" u/ u& q; p0 Q

! c' Y/ ^: N- l/ x  k3 x     如:
3 c. U5 I  l, f  d, a' I3 j& r( _* V, C
           J = [1 2 3; 4 5 6; 7 8 9]; ——这里定义了一个三行三列的矩阵。! u) ?9 p) a" y/ n' M
6 |$ ?0 I- ]" b& u0 a4 H
           J[:, 1] = 0; ——直接操作了J矩阵中每一行的第1列 此时J = [0 2 3; 0 5 6; 0 8 9]
1 P% i. \" V" M/ n, b' x) D: w$ N' R4 R; d
           其他如行操作用法类似,不再赘述。
. i/ `2 E# _& m1 Q. b
! Y) Q: o9 C5 H     
1 t  v8 ^, U( }& n- z$ W6 j. T4 W! X
     下面我们对一副图像进行直接操作,把其中的红色部分改为蓝色。' X5 ~2 }! A( i( n

$ N( x8 t, h- R/ H7 c5 }* ^+ n代码如下:
- V. u3 }% Y  p  V2 n
% }$ f5 g4 W: C' Y$ r. 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);
    7 J  u" U3 i2 ^; e& o% S) \  |
   ; o+ [, ?- Z! r
/ x- u' |/ h; [3 |

" T3 B* B- h" X5 r& L3 ^1 S运行结果:
: o4 J3 K0 P3 J6 C) B4 f" U转换前:) d9 v3 H  L: F! c# X

4 u+ b* `8 H7 Q; C) s
( \' V" P* P7 s+ a, T# J
8 C/ v6 A& n6 t8 ?! e
转换后:) s3 @& l# F, V0 J4 A6 |$ Y5 u

5 J; c/ O  |. l% H
5 r* d7 |$ A+ [  i2 n$ k

  L5 z8 ^! r8 `2 s: E* M, @
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-5 13:44 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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