MATLAB代码:
%边界跟踪 bwtraceboundary 函数 clc I = imread('../deep.jpg'); figure imshow(I); title('原始图像'); I1 = rgb2gray(I); %彩图转换成灰度图像 %使用阈值 目的是将图像转换为二进制图像 threshold = graythresh(I1); %将灰度值转化为二值图像所需要的门限 BW = im2bw(I1,threshold); %将灰度图像转化为二值图像 figure imshow(BW); title('二值图像'); %[labeled,numObjects] = bwlabel(BW,8); 图像中联通区域的个数 dim=size(BW); %dim是计算图像的大小[row,col] col=round(dim(2)/2)-90; %计算起始点列坐标 row=find(BW(:,col),1); %计算起始点行坐标 返回这个矩阵中值为1的第一个元素的坐标 %row = round(dim(1)/2)+100; %计算行坐标 %col = find(BW(row,:),1); %计算列坐标 connectivity=8; num_points=9600; contour=bwtraceboundary(BW,[row,col],'N',connectivity,num_points); %提取边界 %新建与源图像一样大小的0矩阵 n1=zeros(dim(1),dim(2)); %使这个矩阵所在的像素坐标的值为1 for ix=1:1486%contour的元素个数 x1=contour(ix,1); y1=contour(ix,2); n1(x1,y1)=1; end %怎样将这个矩阵与原像素点乘就提取出来了??? figure imshow(I1); hold on; plot(contour(:,2),contour(:,1), 'g','LineWidth' ,2); title('边界跟踪图像'); figure,imshow(n1);%边界图像
怎么点乘??