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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

. O7 y- U% B/ Q需求/ L: y0 R" C. ?3 ?/ \
( z) @1 z8 I- I1 N5 Z1 t( H
        直接操作RGB图像的像素点,进行颜色的相关操作。
' p( W( p' Q, B2 [- X1 m6 [: |% t
( i3 @, {9 m( k! N) p; q+ {4 p2 \/ F           掌握这个,必须对MATLAB中矩阵的操作有所熟悉,特别是整行、整列的操作。
$ D% ]( `( ^$ |" d6 n& o2 {) }  N* i& d  |& R$ m8 P" c! ^
     如:7 M& i6 F2 D$ n0 F5 ~
& o# H% j3 ~6 @6 @! S8 C; Q: ^# r
           J = [1 2 3; 4 5 6; 7 8 9]; ——这里定义了一个三行三列的矩阵。
& |' }; \+ _8 v# R% ^/ f/ X! _3 L# `
           J[:, 1] = 0; ——直接操作了J矩阵中每一行的第1列 此时J = [0 2 3; 0 5 6; 0 8 9]
8 z5 o! }( }# u/ m! K- D
, |0 ]& S' Q# R4 `# e           其他如行操作用法类似,不再赘述。
/ t3 {0 C& a; _- M7 L2 X
+ ]6 ^7 o! W, z: Q. B' V; M. p9 z9 t  Q     
. u- n7 S$ W0 D- V6 s0 ?
; |7 g3 N- a) D6 |& q* Q     下面我们对一副图像进行直接操作,把其中的红色部分改为蓝色。
# e3 z+ v; ^0 P5 c
- _1 n4 L. {: f! a$ h, b代码如下:9 ~. ]! U+ I4 o3 \
( b& @5 E/ r9 h6 l* Y% U2 \
  • % 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);
    / E! Q  _7 U: v5 ~8 `" T/ y2 `
   ! \3 O- T2 l7 N1 u  [

2 S6 c% B3 J8 m' _, f& r, T+ [) q' P; d
运行结果:
& C+ n/ a! f, o4 z转换前:' b8 r( r4 R6 h, Z1 T# |
7 S% j% m; ~1 }; x2 E4 K

4 A& O/ V' F3 H8 N/ W3 x1 S2 `/ z" L! x" c3 K1 \3 B0 U
转换后:
" A% X% o& x1 }
2 u2 v4 q  A" b

$ _" ~2 O, E% j9 ?3 F0 V

. _4 Q% u* o. T5 q4 N+ E% r) G: [
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 14:27 , Processed in 0.171875 second(s), 27 queries , Gzip On.

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

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

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