三九宝宝网宝宝百科性格养成

matlab图像处理中关于图像感兴趣区域问题

01月17日 编辑 39baobao.com

[如何选定图像的感兴趣区域进行角点检测 opencv]右键选择 传感器(英文名称:transducer/sensor)是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处...+阅读

I=imread('1.jpg'); f=rgb2gray(I); f1=im2bw(f,192/240); BW1=double(f1); BW=edge(BW1,'sobel',0.4); r_max=90; r_min=20;step_r=10;step_angle=pi/6;p=0.3; % p:阈值,0,1之间的数 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % output % hough_space:参数空间,h(a,b,r)表示圆心在(a,b)半径为r的圆上的点数 % hough_circl:二值图像,检测到的圆 % para:检测到的圆的圆心、半径 [m,n] = size(BW); size_r = round((r_max-r_min)/step_r)+1; size_angle = round(2*pi/step_angle); hough_space = zeros(m,n,size_r); [rows,cols] = find(BW); ecount = size(rows); % Hough变换 % 将图像空间(x,y)对应到参数空间(a,b,r) % a = x-r*cos(angle) % b = y-r*sin(angle) for i=1:ecount for r=1:size_r for k=1:size_angle a = round(rows(i)-(r_min+(r-1)*step_r)*cos(k*step_angle)); b = round(cols(i)-(r_min+(r-1)*step_r)*sin(k*step_angle)); if(a>0&&a<=m&&b>0&&b<=n) hough_space(a,b,r) = hough_space(a,b,r)+1; end end end end % 搜索超过阈值的聚集点 max_para = max(max(max(hough_space))); index = find(hough_space>=max_para*p); length = size(index); hough_circle = false(m,n); for i=1:ecount for k=1:length par3 = floor(index(k)/(m*n))+1; par2 = floor((index(k)-(par3-1)*(m*n))/m)+1; par1 = index(k)-(par3-1)*(m*n)-(par2-1)*m; if((rows(i)-par1)^2+(cols(i)-par2)^2<(r_min+(par3-1)*step_r)^2+5&&... (rows(i)-par1)^2+(cols(i)-par2)^2>(r_min+(par3-1)*step_r)^2-5) hough_circle(rows(i),cols(i)) = true; end end end % 打印检测结果 for k=1:length par3 = floor(index(k)/(m*n))+1; par2 = floor((index(k)-(par3-1)*(m*n))/m)+1; par1 = index(k)-(par3-1)*(m*n)-(par2-1)*m; par3 = r_min+(par3-1)*step_r; fprintf(1,'Center %d %d radius %d\n',par1,par2,par3); para(:,k) = [par1,par2,par3]; end imshow(hough circles) 这是我做的一个数字图像处理实验中的程序,应该有用

推荐阅读
图文推荐