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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

) F) q7 C% @# ?: |' W$ [需求- A$ A' j( a8 G  D) [8 ]

7 h5 z- e5 x4 Q# _. H  j0 N* p! F% s        直接操作RGB图像的像素点,进行颜色的相关操作。
' y) @% a9 m* k: Q  F
0 U1 }6 u1 p0 w6 a- b7 ~3 e           掌握这个,必须对MATLAB中矩阵的操作有所熟悉,特别是整行、整列的操作。
$ t, }! U" h( N+ u, X/ N% ^; `  J
9 ]3 j) v+ y( ?, K: M5 x4 h     如:
( E0 a6 \* P" W5 v/ m( M$ R/ Y# v; s: `" b0 ]. e
           J = [1 2 3; 4 5 6; 7 8 9]; ——这里定义了一个三行三列的矩阵。9 Z! W% f! _) N' J

2 m: P1 C& u* z" z* u0 }1 j8 E           J[:, 1] = 0; ——直接操作了J矩阵中每一行的第1列 此时J = [0 2 3; 0 5 6; 0 8 9]
- M$ ^6 ~% L2 v0 t6 n2 ^5 m& V8 B' K8 C7 x% [
           其他如行操作用法类似,不再赘述。% D. R* r, l5 d, D+ j: ^+ ]4 w5 c7 [
% w) b) R  U2 t' n4 Q
     " j" `5 I) ^) W1 ]

4 q8 K( D- [: S* Q$ I1 H  c# W* m     下面我们对一副图像进行直接操作,把其中的红色部分改为蓝色。* ?* V& O, S: k! L- J- H) o
3 F: m4 O/ n$ Y6 o; f; K: x5 l
代码如下:
" N% D4 ]% ?+ A% D. o! T9 o" m* _; w2 S- |
  • % 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);1 K; ?' Y7 N% {$ I
   
5 w2 Q- q, m) r$ q

- C/ L0 d, M8 }5 L, K9 q2 k( V' X/ q% u# k6 B, m4 N
运行结果:
, O( H7 _7 A3 ^) R3 l转换前:3 O+ B' j$ L9 u2 n
1 g2 G5 h+ g# n
" l8 _6 t! ]) B0 _* U; E

1 H; D8 w' ~- A9 ?6 b9 B& e转换后:& M/ d2 u. q$ ?, R  h6 M6 e6 [5 f
) k8 B" ~& \. }& K7 e: n

( o; P* t# c" X+ K+ }4 E

, r* d$ y4 s  n# h3 J' ?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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