查看: 237|回复: 5|关注: 0

[已解决] 图像的每一列求和遇到问题?

[复制链接]

新手

29 麦片

财富积分


050


3

主题

7

帖子

0

最佳答案
本帖最后由 leelionyu1991 于 2020-7-10 22:13 编辑

各位大佬:

       小弟MATLAB初学者用来图像处理,直接上代码
sum = 0;
[M,N] = size(I);
for v = 1:N
     for u = 1:M
          sum_temp = sum(I(:,v));                       %求图像每一列的和
     end
          sum = sum + sum_temp(v);                   %求图像列的总和
end

sum_ant = sum/N;                                           %列总和的均值

for v = 1:N
     temp = sum_temp/sum_ant;                        %每一列的和除以列总和均值

以上就是代码部分,主要是为了给图像做归一化处理,但是总是在求每一列和这里报错,提示超出索引范围,小白一枚,不知道是什么问题,
还请大佬详细解释,感激不尽!!
回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

入门

328 麦片

财富积分


50500


1

主题

310

帖子

46

最佳答案
  • 关注者: 11
发表于 2020-7-11 10:44:11 | 显示全部楼层
sum = 0;
[M,N] = size(I);
%求每列和
colsSum = sum(I)
%求总和
totalSum = sum(I(:))
%列总和的均值
meanColsSum = colsSum./N
%求每列和占总和的比值
percent = colsSum ./totalSum
回复此楼 已获打赏: 0 积分

举报

新手

19 麦片

财富积分


050


0

主题

13

帖子

2

最佳答案
发表于 2020-7-16 08:48:22 | 显示全部楼层
本帖最后由 mi_cheng 于 2020-7-16 09:38 编辑

close all;clear all;
img=imread('无标题.jpg');
I=rgb2gray(img);    % 把图像转换成灰度图
P=0;
[M,N]=size(I);
for v=1:N
   sum_temp(v)=sum(I(:,v));        %求图像每一列的
   P=P+sum_temp(v);                %求图像列的总和
end
sum_ant=P/N;                       %列总和的均值
for v=1:N
    temp(v)=sum_temp(v)/sum_ant;   %每一列的和除以列总和均值
end
回复此楼 已获打赏: 0 积分

举报

新手

19 麦片

财富积分


050


0

主题

13

帖子

2

最佳答案
发表于 2020-7-16 08:51:30 | 显示全部楼层 |此回复为最佳答案
里面内容错误很多啊,按照你的思路修改。最大的错误是你不能用sum当做你的变量,sum是matlab的内置函数。另外若使某个函数为一列值,你得在函数后面加个 sum_temp(v)
回复此楼 已获打赏: 0 积分

举报

新手

29 麦片

财富积分


050


3

主题

7

帖子

0

最佳答案
 楼主| 发表于 3 天前 | 显示全部楼层
mi_cheng 发表于 2020-7-16 08:51
里面内容错误很多啊,按照你的思路修改。最大的错误是你不能用sum当做你的变量,sum是matlab的内置函数。另 ...

是的,主要是不能拿sum做变量,非常感谢您的指导。
回复此楼 已获打赏: 0 积分

举报

新手

29 麦片

财富积分


050


3

主题

7

帖子

0

最佳答案
 楼主| 发表于 3 天前 | 显示全部楼层
strugglefx 发表于 2020-7-11 10:44
sum = 0;
[M,N] = size(I);
%求每列和

谢谢您,非常有帮助!
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

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