概述
close all; %关闭当前所有图形窗口,清除工作空间所有变量
clear all;
clc;
%%%%剪切%%%%
[A,map]=imread('左侧图.png'); %读入图像
[B,map]=imread('右侧图.png'); %读入图像
rect1=[96 40 120 166]; %定义剪切区域
rect2=[70 2 120 166]; %定义剪切区域
X1=imcrop(A,rect1); %进行图像剪切
X2=imcrop(B,rect2); %进行图像剪切
set(0,'defaultFigurePosition',[100,100,1000,500]);%修改图形图像位置的默认设置
set(0,'defaultFigureColor',[1 1 1])%修改图形背景颜色的设置
figure(1);
subplot(221),imshow(A); %显示原图像
rectangle('Position',rect1,'LineWidth',2,'EdgeColor','r') %显示图像剪切区域
subplot(222),imshow(B); %显示原图像
rectangle('Position',rect2,'LineWidth',2,'EdgeColor','r') %显示图像剪切区域
subplot(223),imshow(X1); %显示剪切的图像
subplot(224),imshow(X2); %显示剪切的图像
%%%单色化%%%
M1=X1; %将剪切图像X1赋值给M1
M1(:,:,1)=0; %将原图像变成单色图像,保留蓝色
M1(:,:,2)=0;
M2=X2; %将剪切图像X2赋值给M2
M2(:,:,1)=0; %将原图像变成单色图像,保留蓝色
M2(:,:,2)=0;
figure(2);
subplot(221),imshow(M1);
subplot(222),imshow(M2);
%%%灰度化%%%
H1=rgb2gray(M1);
H2=rgb2gray(M2);
subplot(223),imshow(H1);
subplot(224),imshow(H2);
%%%提取标志点%%%
H3=H1;
H4=H2;
i = 0;
while i<=121*167
[r1] = find(H3<=25); %小于阈值的部分,找出M1中小于等于25的位置
[r2] = find(H3>25); %大于阈值的部分
[r3] = find(H4<=25); %小于阈值的部分,找出M2中小于等于25的位置
[r4] = find(H4>25); %大于阈值的部分
i = i+1;
end
H3(r1) = 0; %将小于阈值的部分赋值为0
H3(r2) = 255; %将大于阈值的部分赋值为255 这两步是将图像转换成二值图像
H4(r3) = 0; %将小于阈值的部分赋值为0
H4(r4) = 255; %将大于阈值的部分赋值为255 这两步是将图像转换成二值图像
figure(3);
subplot(221);imshow(H3,[]);
subplot(222);imshow(H4,[]);
%保存图像
imwrite(X1,'左侧剪切图.png'); %保存X1
imwrite(X2,'右侧剪切图.png'); %保存X2
imwrite(M1,'左侧单色图.png'); %保存M1
imwrite(M2,'右侧单色图.png'); %保存M2
imwrite(H1,'左侧单色灰度图.png'); %保存H1
imwrite(H2,'右侧单色灰度图.png'); %保存H2
imwrite(H3,'左侧标记二值图.png'); %保存H3
imwrite(H4,'右侧标记二值图.png'); %保存H4
最后
以上就是有魅力眼睛为你收集整理的基于Matlab的图像特征点提取应用的全部内容,希望文章能够帮你解决基于Matlab的图像特征点提取应用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复