我看了您的案例,然后我照做,但为什么我的结果总是“逻辑索引包含一个超出数组范围的 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);
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 mmocr的训练错误,结果全为0
- ¥15 python的qt5界面
- ¥15 无线电能传输系统MATLAB仿真问题
- ¥50 如何用脚本实现输入法的热键设置
- ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
- ¥30 深度学习,前后端连接
- ¥15 孟德尔随机化结果不一致
- ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
- ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
- ¥15 谁有desed数据集呀