当前位置:编程学习 > Matlab >>

matlab代码纠错

代码: clear all; A=imread('C:\Users\Champion.R.Madrid\Desktop\成活性检测图像处理\死胚(原)\死胚 (0).JPG'); count=0; R=0; G=0; B=0; for i=470:1090 for j=745:1650 if A(i,j,1)>2 r=A(i,j,1); g=A(i,j,2); b=A(i,j,3); count=count+1; R=R+r; G=G+g; B=B+b; end end end AR=R/count AG=G/count AB=B/count 我想要的结果是累加RGB分量 后除以像素点的个数,为什么RGB全部都等于255,不会等于255的。。。急 谢啦
追问:什么意思啊?能不能说具体一点呢。。。谢谢GNN
答案:我来终结此问~
A是uint8类型的,最大只有8位,255.
你可以这样:A=int32(A);

另附我的测试代码:
clear all;
 A=imread('C:\Users\zmy\Pictures\Collection\2e12a0ecb8549a2927979105.jpg');
 count=0;
 
 R=0;
 G=0;
 B=0;

[m,n]=size(A(:,:,1));
 A=int32(A);
 for i=1:m
     for j=1:n
         if A(i,j,1)>2
           
     r=A(i,j,1);
 
     g=A(i,j,2);
 
     b=A(i,j,3);
     count=count+1;
           R=R+r;
 
           G=G+g;
 
           B=B+b;
        end
    end
 end

 AR=R/count;
 
 AG=G/count;
 
 AB=B/count; 

记得给我点分哈~~
其他:P=[0.2286 0.1292 0.0720 0.1592 0.1335 0.0733 0.1159 0.0940 0.0522 0.1345 0.0090 0.1260 0.3619 0.0690 0.1828; 0.2090 0.0947 因为所以 科学道理 国家机密 不告诉你 
 0.1828; 0.2090 0.0947 # 

上一个:帮我看一下下面的matlab程序,运行时提示有错误,谢谢
下一个:matlab中如何将若干个大小相等的二位数组存入三维矩阵中(不用嵌套循环)?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,