彩色图片匹配
来源:互联网 发布:铺货软件 编辑:程序博客网 时间:2024/05/12 01:51
一、彩色图像提取.
function rgbsb()
%读入图像
yuantu=imread('car.jpg');
pipeitu=imread('lic.jpg');
figure,imshow(yuantu),title('原图');
figure,imshow(pipeitu),title('原图');
%图像灰度化
yuantu_gray=gray(yuantu);
pipeitu_gray=gray(pipeitu);
figure,imshow(yuantu_gray),title('原图灰度');
figure,imshow(pipeitu_gray),title('匹配图灰度');
%取得图像大小
[pipeitu_h,pipeitu_w]=size(pipeitu_gray);
[yuantu_h,yuantu_w]=size(yuantu_gray);
figure,imshow(yuantu_gray),title('原图灰度');
figure,imshow(pipeitu_gray),title('匹配图灰度');
figure,imshow(yuantu),title('原图匹配结果');
hold on;
for i=1:yuantu_h-pipeitu_h
for j=1:yuantu_w-pipeitu_w
temp=imcrop(yuantu_gray,[j,i,pipeitu_w-1,pipeitu_h-1]);
r=corr2(temp,pipeitu_gray)
if r>0.9
plot(j:j+pipeitu_w,i,'r');
plot(j:j+pipeitu_w,i+pipeitu_h,'r');
plot(j,i:i+pipeitu_h,'r');
plot(j+pipeitu_w,i:i+pipeitu_h,'r');
end
end
end
%图像灰度化
function I = gray(varargin)
X = parse_inputs(varargin{:});
origSize = size(X);
threeD = (ndims(X)==3);
T = inv([1.0 0.956 0.621; 1.0 -0.272 -0.647; 1.0 -1.106 1.703]);
coef = T(1,:)';
if threeD
X = reshape(X(:),origSize(1)*origSize(2),3);
sizeOutput = [origSize(1), origSize(2)];
if isa(X, 'double') || isa(X, 'single')
I = X*coef;
I = min(max(I,0),1);
else
I = imlincomb(coef(1),X(:,1),coef(2),X(:,2),coef(3),X(:,3), ...
class(X));
end
I = reshape(I,sizeOutput);
else
I = X * coef;
I = min(max(I,0),1);
I = [I,I,I];
end
function X = parse_inputs(varargin)
iptchecknargin(1,1,nargin,mfilename);
if ndims(varargin{1})==2
if (size(varargin{1},2) ~=3 || size(varargin{1},1) < 1)
eid = sprintf('Images:%s:invalidSizeForColormap',mfilename);
msg = 'MAP must be a m x 3 array.';
error(eid,'%s',msg);
end
if ~isa(varargin{1},'double')
eid = sprintf('Images:%s:notAValidColormap',mfilename);
msg1 = 'MAP should be a double m x 3 array with values in the';
msg2 = ' range [0,1].Convert your map to double using IM2DOUBLE.';
error(eid,'%s %s',msg1,msg2);
end
elseif (ndims(varargin{1})==3)
if ((size(varargin{1},3) ~= 3))
eid = sprintf('Images:%s:invalidInputSize',mfilename);
msg = 'RGB must be a m x n x 3 array.';
error(eid,'%s',msg);
end
else
eid = sprintf('Images:%s:invalidInputSize',mfilename);
msg1 = 'RGB2GRAY only accepts a Mx3 matrix for MAP or a MxNx3 input for ';
msg2 = 'RGB.';
error(eid,'%s %s',msg1,msg2);
end
X = varargin{1};
if islogical(X)
eid = sprintf('Images:%s:invalidType',mfilename);
msg = 'RGB2GRAY does not accept logical arrays as inputs.';
error(eid,'%s',msg);
end
四、图片
图1-1 原图
图1-2 匹配图
图1-3 灰度图
图1-4 灰度匹配图
图1-5 匹配结果图
- 彩色图片匹配
- JSP 彩色图片验证码
- 彩色图片取负片方法
- 彩色图片变灰
- 伪彩色图片的处理
- c# 彩色图片变为黑白图片
- 彩色图片转黑白
- photoshop 彩色图片转黑白
- DCGAN生成彩色图片
- CTreeCtrl,CListCtrl显示真彩色图片
- c#winform彩色图片转换灰色
- 将彩色图片转成线描图
- 将彩色图片转为灰度图
- java将彩色图片变成灰色
- fpga控制vga显示彩色图片
- 将彩色图片转成灰度图片
- 彩色图片转换为黑白照片
- fpga控制vga显示彩色图片
- 清除空格
- 大转折:IT史上的9个转折点
- 按钮属性用法举例
- 今週の生活
- 关于求一个正整数阶乘的实现
- 彩色图片匹配
- 如何编写批处理文件
- 关于做项目的一点儿体会
- 第一篇:我的开始
- 大家好,欢迎和大家做朋友!
- Tree控件的异步加载方案的选择建议(C#,ASP.NET 2.0)
- WINCE上的RAD开发(一)-----Lazarus的平台搭建
- 报表数据源的做成
- C++标准程序库