显著性区域检测matlab_code_20170412

1.Main_program吕品晶
%====test1
clear
close all
clc
燃气的互换性%img_in,输入的待处理的图像足摩
%n,图像分块的patch的大小
电子束加工%img_rgb:缩放后的rgb图
%img_lab:rgb2lab后的图
%h,w,图像高宽
%mex_store,存储矩阵
img=imread('test1.jpg');
% img=imread('E:\例程\matlab\显著性分割\假设已知均值\test picture\0010.tif');
max_side=120;神州天戈
yu_value=0.8;
img_lab = pre_rgb2lab(img,max_side);
[ img_scale_1,img_scale_2,img_scale_3,img_scale_4 ] = get4Scale( img_lab );
[ DistanceValue_scale_1_t1,DistanceValue_scale_1_exp,DistanceValue_scale_1_t1_rang,DistanceValue_scale_1_exp_rang] = distanceValueMap_search_onescale_2( img_scale_1,max_side );
[ DistanceValue_scale_2_t1,DistanceValue_scale_2_exp,DistanceValue_scale_2_t1_rang,DistanceValue_scale_2_exp_rang] = distanceValueMap_search_onescale_2( img_scale_2,max_side );
[ DistanceValue_scale_3_t1,DistanceValue_scale_3_exp,DistanceValue_scale_3_t1_rang,DistanceValue_scale_3_exp_rang] = distanceValueMap_search_onescale_2( img_scale_3,max_side );
[ DistanceValue_scale_4_t1,DistanceValue_scale_4_exp,DistanceValue_scale_4_t1_rang,DistanceValue_scale_4_exp_rang] = distanceValueMap_search_onescale_2( img_scale_4,max_side );
value_C_1=Center_weight( DistanceValue_scale_1_exp_rang,yu_value );
value_C_2=Center_weight( DistanceValue_scale_2_exp_rang,yu_value );
value_C_3=Center_weight( DistanceValue_scale_3_exp_rang,yu_value );
value_C_4=Center_weight( DistanceValue_scale_4_exp_rang,yu_value );
[h,w]=size(value_C_1);
value_C_1_resize=value_C_1;
value_C_2_resize=imresize(value_C_2,[h,w]);
value_C_3_resize=imresize(value_C_3,[h,w]);
value_C_4_resize=imresize(value_C_4,[h,w]);
value_C_sum=(value_C_1_resize+value_C_2_resize+value_C_3_resize+value_C_4_resize)/4;
figure,
imshow(value_C_sum);
figure,
imshow(value_C_1_resize);
figure,
imshow(value_C_2_resize); 
figure,
imshow(value_C_3_resize);
figure,
imshow(value_C_4_resize);
8888888888888888888888888888888888888888888888888888888888888888888888888888
2.Center_weight
function [ img_out ] = Center_weight( img_in,yu_value )
%UNTITLED Summary of this function goes here
%  Detailed explanation goes here
img_in=mat2gray(img_in);
[h,w]=size(img_in);
[row,col]=find(img_in>yu_value);%到所有大于阈值的点,记录坐标
l=length(row);
a(1,:)=row;
a(2,:)=col;
for i0=1:h
    for j0=1:w       
      for i=1:l
        c_store(i)=norm(a(:,i)-[i0;j0]);
      end
      min_c(i0,j0)=min(c_store);     
    end
end
  min_c_rang=mat2gray(min_c);
  img_out=img_in.*(1-min_c_rang);
end
888888888888888888888888888888888888888888888888888888888888888888888888888888888888
3.distanceValueMap_search_onescale
鼓词function [ DistanceValue_t1,DistanceValue_exp,DistanceValue_t1_rang,DistanceValue_exp_rang] = distanceValueMap_search_onescale( img_in,max_side )
%UNTITLED7 Summary of this function goes here
%  Detailed explanation goes here
[h,w]=size(img_in(:,:,1));
img_scale1=img_in;
%================================================================================
%在计算块之前,考虑边缘点,所以先对矩阵进行填充
q=3;%填充边缘像素个数
img_scale1_pad(:,:,1)=padarray(img_scale1(:,:,1),[q,q],'replicate','both');
img_scale1_pad(:,:,2)=padarray(img_scale1(:,:,2),[q,q],'replicate','both');
img_scale1_pad(:,:,3)=padarray(img_scale1(:,:,3),[q,q],'replicate','both');
%----------------------------------------------------------------------------------
%计算该尺度下存储patch相量的矩阵,各三个像素取一个patch
for i=1:h
    for j=1:w
        img_scale1_patchVstore_all(i,j,:)=reshape(img_scale1_pad(i:i+6,j:j+6,:),1,147);
    end
end
img_scale1_patchVstore_x=img_scale1_patchVstore_all(1:q:h,1:q:w,:);%将代表patch的相量存为一个矩阵
disp('img_scale1_patchVstore_x complete');
%-----------------------------------------------------------------------------------------
%开始计算每一点的距离的值
[h_x,w_x]=size(img_scale1_patchVstore_x(:,:,1));%记录存储矩阵的大小
for i0=1:h   
    disp(num2str(i0));   
    for j0=1:w
      temp1=img_scale1_patchVstore_all(i0,j0,:);
      store_tp1_all=reshape(img_scale1_patchVstore_all(i0,j0,:),1,147);     
    for i=1:h_x
        for j=1:w_x           
            store_tp1_x=reshape(img_scale1_patchVstore_x(i,j,:),1,147);           
            store_o_disvalue_scale1_x(i,j)=norm( store_tp1_all-store_tp1_x);
            %将与mex_store_tp1像素和其他全图像素计算的欧式距离存储           
            store_position_dis_x(i,j)=norm([i0,j0]-[(1+(i-1)*3),(1+(j-1)*3)]);           
          end
    end
    %---将距离值进行归一化--------------------------------
    max_1=max(max(store_o_disvalue_scale1_x));

本文发布于:2024-09-23 23:31:31,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/91374.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:有机颜料
下一篇:颜空间大全
标签:计算   矩阵   图像   相量   像素   填充   显著性   记录
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议