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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

8 J$ c; X) T% h需求
  w; X8 S, e) E8 I6 M1 E& Z6 m( |/ K. T' J  b5 R3 j7 @# [5 {
        直接操作RGB图像的像素点,进行颜色的相关操作。
  D; W: J3 _$ p( X- E2 |
0 Y" f6 ~1 b+ L           掌握这个,必须对MATLAB中矩阵的操作有所熟悉,特别是整行、整列的操作。
% p0 D# W( R7 |. X3 b* g9 X+ G8 V! t0 r, x# L4 i' C4 T  O% v
     如:+ a# j) z( x3 r7 t7 q. y8 s

4 v# O; e" K: b1 b0 h           J = [1 2 3; 4 5 6; 7 8 9]; ——这里定义了一个三行三列的矩阵。
; P! x, d; s# t! Q7 C, h" Y3 r
2 r8 t) N8 u1 h, E% ?5 s- J           J[:, 1] = 0; ——直接操作了J矩阵中每一行的第1列 此时J = [0 2 3; 0 5 6; 0 8 9]6 z8 ]" R7 z6 d( q6 r4 a5 R$ F

& f( P: o/ M: ?$ L( Q           其他如行操作用法类似,不再赘述。/ m( {# D( Z  D: p
  F# i) P$ a6 k8 r
     
# g( c% `5 B( u  _
0 g" Y& T+ U3 k     下面我们对一副图像进行直接操作,把其中的红色部分改为蓝色。
0 J. t6 ~2 a, ]; [7 P+ s) a. H7 c( }/ c) s
代码如下:
: o# N% T* G: C" M% c: O5 l+ g, 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);
    7 M% M. B7 d- L3 f- o# Q
   
# B( S3 K! K+ [8 N2 u

- G  g* m6 Q  l' r% @1 m& i. Q, ^  a  _( P
运行结果:
! {  o6 t9 a$ P- e3 |: a: x/ }转换前:
, T  t  H. y9 [& O; I1 T
" K( J4 A1 ?7 q7 q2 D

' O7 M3 R2 U7 l; y+ l( g4 X+ ]
  Y* a- D4 W0 |1 m* Y转换后:
3 T* @- w8 A: I- p" g1 d) ?2 s! {; _* B6 i, v2 y. W) H$ p
1 o5 A3 L+ k* D; h3 n1 [0 p
8 T  l2 q# P) B- \" u: P# m# H
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-20 10:09 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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