求助Matlab专家帮我看一下我的这个代码点到直线距离怎么编?急急急!
求凹陷最深处到拟合直线距离,前面程序都有,就最后这一步不会编写了,高手们一定帮帮我,悬赏分我把全部的都给了clc;clearall;closeall;I1=imread(...
求凹陷最深处到拟合直线距离,前面程序都有,就最后这一步不会编写了,高手们一定帮帮我,悬赏分我把全部的都给了
clc;
clear all;
close all;
I1=imread('tu1.jpg');%由于图像本身为truecolor图像,所以需要灰度化
if ~ismatrix(I1)
I=rgb2gray(I1);
else
I=I1;
end
figure(1),imshow(I);title('grayscale图')
%%%%提取中心线start%%%%%%%%%%
a=I;
[max_a, index]=max(a); %找出a的格式
b=repmat(max_a,size(a,1),1); %按矩阵a格式复制b矩阵,b矩阵全是最大值
a(a<b)=0; %矩阵a中小于最大值的元素全变为0
figure(2),imshow(a);title('grayscale细化线图')
%%%%%%%提取中心线end%%%%%%%%%%%%
%%%%%%%%%%%hough变换检测直线start%%%%%%%%%%%%ThetaResolution
BW=a;
[H,T,R] = hough(BW,'RhoResolution',1,'ThetaResolution',1);
% display the original image显示原始图像
figure(3),imshow(imadjust(mat2gray(H)),'XData',T,'YData',R,'InitialMagnification','fit');
title('Hough transform of tu1.jpg ');
xlabel('\theta'), ylabel('\rho');
axis on, axis normal, hold on;
colormap(hot);
peaks = houghpeaks(H, 50,'threshold',ceil(0.3*max(H(:))));
lines = houghlines(BW, T, R,peaks);
figure(4),imshow(a);
lines(1).point2(1)=lines(1).point2(1)+315;
hold on
max_len = 0;
for k = 1:length(lines)
% 绘制各条线
xy = [lines(k).point1; lines(k).point2];
plot(xy(:,1),xy(:,2),'LineWidth',1,'Color','red');
end
hold off
%%%%%%%%%%%%%%hough变换检测直线end%%%%%%%%%%%%%%%% 展开
clc;
clear all;
close all;
I1=imread('tu1.jpg');%由于图像本身为truecolor图像,所以需要灰度化
if ~ismatrix(I1)
I=rgb2gray(I1);
else
I=I1;
end
figure(1),imshow(I);title('grayscale图')
%%%%提取中心线start%%%%%%%%%%
a=I;
[max_a, index]=max(a); %找出a的格式
b=repmat(max_a,size(a,1),1); %按矩阵a格式复制b矩阵,b矩阵全是最大值
a(a<b)=0; %矩阵a中小于最大值的元素全变为0
figure(2),imshow(a);title('grayscale细化线图')
%%%%%%%提取中心线end%%%%%%%%%%%%
%%%%%%%%%%%hough变换检测直线start%%%%%%%%%%%%ThetaResolution
BW=a;
[H,T,R] = hough(BW,'RhoResolution',1,'ThetaResolution',1);
% display the original image显示原始图像
figure(3),imshow(imadjust(mat2gray(H)),'XData',T,'YData',R,'InitialMagnification','fit');
title('Hough transform of tu1.jpg ');
xlabel('\theta'), ylabel('\rho');
axis on, axis normal, hold on;
colormap(hot);
peaks = houghpeaks(H, 50,'threshold',ceil(0.3*max(H(:))));
lines = houghlines(BW, T, R,peaks);
figure(4),imshow(a);
lines(1).point2(1)=lines(1).point2(1)+315;
hold on
max_len = 0;
for k = 1:length(lines)
% 绘制各条线
xy = [lines(k).point1; lines(k).point2];
plot(xy(:,1),xy(:,2),'LineWidth',1,'Color','red');
end
hold off
%%%%%%%%%%%%%%hough变换检测直线end%%%%%%%%%%%%%%%% 展开
1个回答
展开全部
更多追问追答
追问
谢谢您,我想问下,是不截止到您给我的程序第6行,就已经算出来了最远的距离?
追答
嗯,是的,v/norm([p(1) 1])就是最远距离。你得图片中,最深处到拟合直线距离约5.6个像素。
Sievers分析仪
2024-10-13 广告
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准...
点击进入详情页
本回答由Sievers分析仪提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询