淺嘗圖像處理——Hybrid images

前言

其實數字圖像處理并不是我的研究方向遵绰,僅僅是因為在開題中簡單提到了基于圖像的設備安全監(jiān)控辽幌,就這樣被導師安排去學習圖像處理的相關知識。

Orz……好吧椿访,假期回家還不到兩周就這樣匆匆忙忙的提前趕回了學校乌企,和實驗室三維重建方向的的筒子們一起去上美國羅文大學唐瑛(Ying (Gina) Tang)教授開設的數字圖像處理入門課程。這周從周一到周三一共上了三節(jié)大課成玫,算是簡單了解了圖像處理的相關內容吧加酵,課程結束后估計也就是淺嘗輒止。

在唐教授的安排下閱讀了Oliva, Torrallaba, 和Schyns所發(fā)表的論文《Hybrid images》哭当,今天主要寫寫如何用matlab將論文所提到的圖像混合進行代碼的實現(xiàn)(估計這是圖像處理小白級的內容了吧猪腕,大神請無視哈~)

實現(xiàn)的整體思想比較簡單,就是對兩幅圖像分別進行高通和低通濾波钦勘,從而將兩幅圖像融合到一起陋葡,同時通過修改截止頻率還可以改善融合效果,這樣就可以實現(xiàn)在近處看是其中一副圖像的效果彻采,而在遠處看又是另一幅圖像的效果脖岛,如下所示:

  1. 待混合圖像1
  2. 待混合圖像2
  3. 混合完成圖像

matlab實現(xiàn)hybrid images

hybrid_images函數的編寫

對兩幅圖像分別進行高通和低通濾波,其中涉及到傅里葉變換和反變換颊亮,圖像混合函數所在文件hybrid_images.m如下:

function re=hybrid_images(ImageFile1,ImageFile2,radius_input)
    
    I1=ImageFile1;
    I2=ImageFile2;
    ImgFileOut='C:\Users\dell\Desktop\hybird_images/out.jpg';
    
    radius = radius_input;      
    I1_ = fftshift(fft2(double(I1)));  %進行傅里葉變換柴梆,并將零點移動到中心
    I2_ = fftshift(fft2(double(I2)));
    [m, n, z]=size(I1);
    h = fspecial('gaussian', [m,n], radius);
    h = h./max(max(h));
    for colorI = 1:3
       J_(:,:,colorI) = I1_(:,:,colorI).*(1-h) + I2_(:,:,colorI).*h;
    end
    J = uint8(real(ifft2(ifftshift(J_))));          %反變換
    imwrite(J,ImgFileOut);    %圖片保存到本地
    re=J;
end

GUI設計

GUI關鍵代碼

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global im1;
[filename,pathname]=uigetfile({'*.*';'*.bmp';'*.jpg';'*.tif';'*.jpg'},'選擇圖像');
if isequal(filename,0)||isequal(pathname,0)
  errordlg('您還沒有選取圖片!终惑!','溫馨提示');%如果沒有輸入绍在,則創(chuàng)建錯誤對話框 
  return;
else
    image=[pathname,filename];%合成路徑+文件名
    im1=imread(image);%讀取圖像
    set(handles.axes1,'HandleVisibility','ON');%打開坐標,方便操作
    axes(handles.axes1);%%使用圖像,操作在坐標1
    imshow(im1);%在坐標axes1顯示原圖像 
end


% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global im2;
[filename,pathname]=uigetfile({'*.*';'*.bmp';'*.jpg';'*.tif';'*.jpg'},'選擇圖像');
if isequal(filename,0)||isequal(pathname,0)
  errordlg('您還沒有選取圖片3ザ伞臼寄!','溫馨提示');%如果沒有輸入,則創(chuàng)建錯誤對話框 
  return;
else
    image=[pathname,filename];%合成路徑+文件名
    im2=imread(image);%讀取圖像
    set(handles.axes2,'HandleVisibility','ON');%打開坐標溜宽,方便操作
    axes(handles.axes2);%%使用圖像吉拳,操作在坐標1
    imshow(im2);%在坐標axes1顯示原圖像 
end


% --- Executes on slider movement.
function slider1_Callback(hObject, eventdata, handles)
% hObject    handle to slider1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'Value') returns position of slider
%        get(hObject,'Min') and get(hObject,'Max') to determine range of slider
slide_value=get(hObject,'Value');%獲取滑塊當前值
global im1;
global im2;
radius=slide_value;
set(handles.edit1,'string',num2str(slide_value));
x=hybrid_images(im1,im2,radius);
set(handles.axes5,'HandleVisibility','ON');%打開坐標,方便操作
axes(handles.axes5)
imshow(x);

% --- Executes during object creation, after setting all properties.
function slider1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to slider1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: slider controls usually have a light gray background.
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end

運行程序

paper鏈接

http://cvcl.mit.edu/hybrid/OlivaTorralb_Hybrid_Siggraph06.pdf

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末适揉,一起剝皮案震驚了整個濱河市留攒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嫉嘀,老刑警劉巖炼邀,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異剪侮,居然都是意外死亡拭宁,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門瓣俯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杰标,“玉大人,你說我怎么就攤上這事彩匕≡诤担” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵推掸,是天一觀的道長桶蝎。 經常有香客問我谅畅,道長,這世上最難降的妖魔是什么毡泻? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮仇味,結果婚禮上呻顽,老公的妹妹穿的比我還像新娘。我一直安慰自己丹墨,他們只是感情好,可當我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布贩挣。 她就那樣靜靜地躺著没酣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪卵迂。 梳的紋絲不亂的頭發(fā)上裕便,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天,我揣著相機與錄音见咒,去河邊找鬼。 笑死改览,一個胖子當著我的面吹牛,可吹牛的內容都是我干的恃疯。 我是一名探鬼主播墨闲,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鸳碧!你這毒婦竟也來了?” 一聲冷哼從身側響起瞻离,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎推励,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體验辞,經...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡喊衫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了族购。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡违施,死狀恐怖瑟幕,靈堂內的尸體忽然破棺而出醉拓,到底是詐尸還是另有隱情,我是刑警寧澤亿卤,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站秆乳,受9級特大地震影響,放射性物質發(fā)生泄漏屹堰。R本人自食惡果不足惜街氢,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望珊肃。 院中可真熱鬧,春花似錦伦乔、人聲如沸厉亏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至招刹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疯暑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工畦粮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乖阵,地道東北人宣赔。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓儒将,卻偏偏與公主長得像,于是被迫代替她去往敵國和親钩蚊。 傳聞我的和親對象是個殘疾皇子贡翘,可洞房花燭夜當晚...
    茶點故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內容