我看了您的案例,然后我照做,但为什么我的结果总是“逻辑索引包含一个超出数组范围的 true 值”,我想把前一张图变成后一张图。下面是代码,请您帮忙看看,谢谢您了。
为什么我的这个逻辑索引包含一个超出数组范围的 true 值
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 技术专家团-Joel 2021-09-15 21:32关注
你好,同学,请顺便把你看的博文连接发过来一下,我给你找找错误
已经看了博文,发现运行一点问题都没有,非常丝滑!!!~~~
我把imagepath和subimgpath都设置为同一张图片,没有任何问题,只要图片在当前工作路径里imagepath = '20190903221520229.jpg'; %待处理图片 subimgpath = '20190903221520229.jpg'; %可以选择填充子图 sz =3; %设置块的大小 thresh = 125/255; %灰度阈值 blackthresh = 0.6; %小格子黑色大于这个值小格子为黑 hasline = 1; %设置分割线条为1 其他值为没有 linecolor = 0; %设置分割线条颜色 pixpath = 'a.txt'; %设置最后像素矩阵的路径 A=imread(imagepath); %读取到一张图片 B = imread(subimgpath); %小块换成图片也可 %figure();%图片太大截图 %A=A(1:360,600:961); %imshow(I2) B = rgb2gray(B); IB=imresize(B,[sz+1,sz+1]); %thresh = graythresh(A); %自动确定二值化阈值 I2 = im2bw(A,thresh); %对图像二值化 I2=imresize(I2,[600,600]);%太大的图像需要缩小 figure(); imshow(A); %显示二值化之前的图片 title('原图'); imshow(I2); %显示二值化之后的图片 title('二值化'); %I2=1*ones(16) I2 = uint8(I2); rs = size(I2, 1); cs = size(I2, 2);%取图像的行列数 ch = sz; cw = sz; numr = rs/sz; numc = cs/sz; tagm = zeros(numr,numc); t1 = (0:numr-1)*ch+1 ; t3 = (0:numc-1)*cw+1; figure; for i = 1 : numr-1 for j = 1 : numc-1 if hasline == 1 I2(t1(i),:,:)=linecolor; %设置分割线条 I2(:,t3(j),:)=linecolor; end if sum(sum(I2(t1(i)+1:t1(i)+sz,t3(j)+1:t3(j)+sz)==0))/(sz*sz)>blackthresh I2(t1(i):t1(i)+sz,t3(j):t3(j)+sz)=0; tagm(i,j)=1; else I2(t1(i):t1(i)+sz,t3(j):t3(j)+sz)=255; tagm(i,j)=0; end end end imshow(I2); fid=fopen(pixpath,'wt');%改为你自己文件的位置 [m,n]=size(tagm); for i=1:m for j=1:n if j==n fprintf(fid,'%g\n',tagm(i,j)); else fprintf(fid,'%g\t',tagm(i,j)); end end end fclose(fid);
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥23 (标签-bug|关键词-密码错误加密)
- ¥66 比特币地址如何生成taproot地址
- ¥20 数学建模数学建模需要
- ¥15 关于#lua#的问题,请各位专家解答!
- ¥15 什么设备可以研究OFDM的60GHz毫米波信道模型
- ¥15 不知道是该怎么引用多个函数片段
- ¥30 关于用python写支付宝扫码付异步通知收不到的问题
- ¥15 隐藏系统界面pdf的打印、下载按钮
- ¥15 基于pso参数优化的LightGBM分类模型
- ¥15 安装Paddleocr时报错无法解决