На бирже курсовых и дипломных проектов можно найти образцы готовых работ или получить помощь в написании уникальных курсовых работ, дипломов, лабораторных работ, контрольных работ, диссертаций, рефератов. Так же вы мажете самостоятельно повысить уникальность своей работы для прохождения проверки на плагиат всего за несколько минут.

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


реферат Построение графического интерфейса в системе Matlab

Информация:

Тип работы: реферат. Добавлен: 17.12.2012. Сдан: 2012. Страниц: 36. Уникальность по antiplagiat.ru: < 30%

Описание (план):


 
Узбекское агентство связи и  информатизации
 
Ташкентский университет информационных Технологий
 
 
 
 
 
 
 
 
 
 
Самостоятельная работа
По предмету:
«Цифровая Обработка  Изображений»
Тема 
«Построение графического интерфейса в системе Matlab»
 
 
 
 
 
 
 
 
 
Выполнила:
 студентка группы 226-09
Набиуллина Леннара
Проверил
Ашуров А.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Ташкент 2012
 
Введение
 
Matlab – это система инженерных и научных вычислений. Она обеспечивает математические вычисления, визуализацию научной графики программирование и моделирование процессов с использованием интуитивно понятной среды окружения, когда задачи и их решения могут быть представлены в нотации, близкой к математической. Наиболее известные области применения системы Matlab:
    математика и вычисления;
    разработка алгоритмов;
    вычислительный эксперимент, имитационное моделирование, макетирование;
    анализ данных, исследование и визуализация результатов;
    научная и инженерная графика;
    разработка приложений, включая графический интерфейс пользователя.
Основным объектом при  программировании в среде Matlab является массив, для которого не требуется указывать размерность явно. Это позволяет решать многие вычислительные задачи, связанные с векторно-матричными формулировками.
Система Matlab – это одновременно и операционная среда и язык программирования. Пользователь может написать специализированные функции и программы, которые оформляются в виде М-файлов. По мере увеличения количества созданных программ возникают проблемы их классификации и тогда можно попытаться собрать родственные функции в специальные папки. Это приводит к концепции пакетов прикладных программ, которые представляют собой коллекции М-файлов для решения определенной задачи или проблемы.
 

Cреда системы Matlab
 
Среда системы Matlab это совокупность интерфейсов, через которые пользователь поддерживают связь этой системой. Это: диалог посредством командной строки или графического интерфейса, просмотр рабочей области, редактор и отладчик М-файлов, работа с файлами и оболочкой DOS, экспорт и импорт данных, интерактивный доступ к справочной информации, динамическое взаимодействие с внешними системами Microsoft Word, Microsoft Excel и др. Реализуются эти интерфейсы через командное окно, инструментальную панель, системы просмотра рабочей области и путей доступа, редактор / отладчик М-файлов, специальные меню.
Пользовательский интерфейс  носит дружественный характер и  построен с учетом устоявшихся принципов  программного обеспечения, разрабатываемого для операционной системы Windows.
В системе Matlab существует два вида м-файлов:
    скрипты – представляют последовательности команд (представляют собой процедуры);
    function – представляют собой функции с входными аргументами и выходными параметрами (значениями функции).
Но далее возникает  необходимость многократного запуска  файла программы при других, изменённых параметрах решаемой задачи. Возникает неудобство: в постоянном редактировании исходного текста программы и повторном или очередном её запуске. При этом важен механизм управления переменными, который бы обеспечивал удобный интерфейс между программой и пользователем. При решении других задач могут возникнуть трудности с визуализацией какого-либо процесса, то есть некоторая переменная изменяться динамически в процессе решения поставленной задачи.
Все эти и другие трудности, возможно, решить при использовании графического интерфейса пользователя. (GUI – Graphical User Interface)
Основные принципы построения графического интерфейса
Использование графического интерфейса позволяет пользователю сделать  программу более универсальной.
Как и любой процесс проектирования, процесс построения графического интерфейса пользователя можно разбить на следующие этапы:
1. Постановка задачи,
2. Создание формы интерфейса и создание на неё элементов управления.
3. Написание кода программы и кода обработки событий.
Этапы построения графического интерфейса пользователя
1. На первом этапе проводиться анализ поставленной задачи и определяется количество и состав элементов управления необходимых для решения задачи.
2. На втором этапе создаётся форма графического интерфейса и на ней создаются и размещаются элементы управления. Здесь же описываются их свойства.
Задавать расположение и выравнивать элементы на форме описывать их свойства можно 'вручную', но для удобства и быстроты используют редактор выравнивания объектов (The Alignment Tool) и редактора свойств (The Property Editor).
Существует два способа создания формы и элементов управления, а так же задания или изменения их свойств:
    использование команды WORKSPACE (то есть использование команды операционной среды MATLAB).
    использование средств панели инструментов – совокупности средств для быстрого создания GUI (The Control Panel).
При построении элементов  управления первым способом удобно использовать скрипт-файл, в котором последовательно  с помощью команд WARKSPACE описывается создание элементов управления и устанавливаются их свойства.
Эти команды можно использовать как для написания кода, создающего графический интерфейс пользователя, так и использовать для управления свойствами элементов управления из тела m-файлов. Благодаря чему мы можем получить визуализацию нашего процесса вычисления.
На практике всё более  склоняются ко второму способу создания графического интерфейса с элементами управления. Это объясняется тем, что при использовании панели управления с её редакторами свойств, событий, выравнивания очень удобно работать, и создавать GUI значительно быстрее, чем в первом случае.
3. На третьем этапе создания графического интерфейса пользователя (GUI) пишется код основной программы вычисления и код для обработки событий.
Код основной программы  вычисления, пишется на языке программирования операционной среды Matlab, в виде m-файла. Созданные m-файлы закрепляются за событием какого-нибудь элемента управления или формы.
При описании свойств элементов управления события описываются в m-файле:
а) либо при создании каждого элемента управления описываем его свойства и сразу описываем действие событие;
б) либо описываем обработку события для каждого элемента при помощи редактора событий (The Property Editor).
Начало выполнения действий по созданию графического интерфейса
Редактор GUIDE (руководство) вызывается командой guide из командного окна или путем выполнения цепочки команд главного меню File (Файл) – New (Новый) – GUI (Графический Интерфейс).
Две странички, присутствующие на стартовой заставке (рис. 1), позволяют начать проектирование нового интерфейса (вкладка – Create New GUI, (Создать новый интерфейс)) или воспользоваться ранее созданным интерфейсом (вкладка – Open Existing GUI (Открыть существующий интерфейс)). Дело в том, что описание формы приложения вместе с расположенными на ней интерфейсными компонентами может быть сохранено в файле с расширением fig. Если на диске хранится нечто похожее на наше будущее приложение, существующим файлом можно воспользоваться с целью экономии времени.
 

Начальная конструктора графического интерфейса (GUIDE) (рис. 1)
 
Мне было предложено рассмотреть приложение, воспроизводящее график одной из пяти функций в зависимости от выбранной строки раскрывающегося меню.
 

Окно редактирования формы (рис. 2)
 

После редактирование необходимо сохранить полученный проект. Для этого нажимаем: File–Save as и сохраняем проект в нужную папку на диске. После этого откроется окно следующего содержания:
 

Окно редактирования m-кода формы (рис. 3)
 
Это код, описывающий поведение сохраненной нами формы. В нем содержатся процедуры и функции, которые позволяют форме быть работоспособной.
 
 


Окно программы, запущенной на выполнение (рис. 4)
 
Вот получена работоспособная программа, которая выполняет выведение различных графических зависимостей на координатной плоскости.
Выбирая различные пункты в выпадающем меню, а затем, нажимая кнопку, вы увидите различные варианты получаемых графиков.
Алгоритм создания интерфейса
1. Вызвать панель управления.
    Создать новую форму интерфейса или загрузить существующую.
    Перейти в режим редактирования формы.
    Натаскать на форму необходимые элементы управления.
2. Вызвать редактор свойств.
    Выбрать элемент управления.
    Выбрать нужное свойство и изменить его.
3. Вызвать редактор событий.
    Выбрать элемент управления.
    Написать код обработки события.
4. Вызвать редактор выравнивания объектов.
    Выбрать элемент управления иди группу элементов.
    Выбрать метод выравнивания.
5. Перейти в окно панели управления и активизировать интерфейс.
 
 
 

Литература
 
1. Дьяконов, В.П. MATLAB 6.5 SP1/7 + Simulink 5/6 в математике и моделировании / В.П. Дьяконов. – М.: СОЛОН-Пресс, 2005. – 576 с.
2. Дьяконов, В.П. MATLAB 6.5 SP1/7 + Simulink 5/6. Основы применения / В.П. Дьяконов – М.: СОЛОН-Пресс, 2005. – 800 с.
3. Дьяконов, В.П. MATLAB 6.5 SP1/7 + Simulink 5/6. Работа с изображениями и видеопотоками / В.П. Дьяконов. – М.: СОЛОН-Пресс, 2005. – 400 с.
4. Ермачкова Ю.А. Проектирование интерфейса в среде GUIDE MATLAB / Ю.А. Ермачкова // Современные информационные технологии в экономике, управлении и образовании. Сборник материалов межвузовской научно-практической конференции, посвященной 175 – летию потребительской кооперации России и 5 – летию филиала. – М.: Информационно-внедренческий центр «Маркетинг», 2006. – С. 35–37.
 
 
 

Приложение
function varargout = imageProc(varargin)
 
% IMAGEPROC M-file for imageProc.fig
%      IMAGEPROC, by itself, creates a new IMAGEPROC or raises the existing
%      singleton*.
%
%      H = IMAGEPROC returns the handle to a new IMAGEPROC or the handle to
%      the existing singleton*.
%
%      IMAGEPROC('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in IMAGEPROC.M with the given input arguments.
%
%      IMAGEPROC('Property','Value',...) creates a new IMAGEPROC or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before imageProc_OpeningFunction gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to imageProc_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
 
% Copyright 2002-2003 The MathWorks, Inc.
 
% Edit the above text to modify the response to help imageProc
 
% Last Modified by GUIDE v2.5 15-Feb-2011 10:30:37
 
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @imageProc_OpeningFcn, ...
                   'gui_OutputFcn',  @imageProc_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end
 
if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
 
 
% --- Executes just before imageProc is made visible.
function imageProc_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to imageProc (see VARARGIN)
 
% Choose default command line output for imageProc
handles.fileLoaded = 0;
handles.fileLoaded2 = 0;
set(handles.axes1,'Visible','off');
set(handles.axes2,'Visible','off');
set(handles.axesHist1,'Visible','off');
set(handles.axesHist2,'Visible','off');
set(handles.editPath, 'Visible', 'off');
set(handles.editSize, 'Visible', 'off');
set(handles.editComment, 'Visible', 'off');
set(handles.textHist1, 'Visible', 'off');
set(handles.textHist2, 'Visible', 'off');
set(handles.sliderBright, 'Enable', 'off');
set(handles.sliderContrast, 'Enable', 'off');
set(handles.sliderRotate, 'Enable', 'off');
set(handles.editBright,'String', sprintf('%10s:%4.0f%%', 'Brightness', 100*get(handles.sliderBright,'Value')));
set(handles.editContrast,'String', sprintf('%10s:%4.0f%%', 'Contrast', 100*get(handles.sliderContrast,'Value')));
set(handles.editRotate,'String', sprintf('%10s:%4.0f', 'Rotate', get(handles.sliderRotate,'Value')));
handles.output = hObject;
 
% Update handles structure
guidata(hObject, handles);
 
% UIWAIT makes imageProc wait for user response (see UIRESUME)
% uiwait(handles.figure1);
 
 
% --- Outputs from this function are returned to the command line.
function varargout = imageProc_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
% Get default command line output from handles structure
varargout{1} = handles.output;
 
 
% --- Executes on button press in LoadButton.
function LoadButton_Callback(hObject, eventdata, handles)
% hObject    handle to LoadButton (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
[FileName,PathName] = uigetfile({'*.*'},'Load Image File');
 
if (FileName==0) % cancel pressed
    return;
end
 
 
handles.fullPath = [PathName FileName];
[a, b, Ext] = fileparts(FileName);
availableExt = {'.bmp','.jpg','.jpeg','.tiff','.png','.gif'};
FOUND = 0;
for (i=1:length(availableExt))
    if (strcmpi(Ext, availableExt{i}))
        FOUND=1;
        break;
    end
end
 
if (FOUND==0)
    h = msgbox('File type not supported!','Error','error');
    return;
end
 
set(handles.sliderRotate, 'Enable', 'on');
set(handles.sliderBright, 'Enable', 'on');
set(handles.sliderContrast, 'Enable', 'on');
set(handles.editPath, 'Visible', 'on');
set(handles.editSize, 'Visible', 'on');
set(handles.editComment, 'Visible', 'on');
 
 
info = imfinfo(handles.fullPath);
if (~isempty(info.Comment))
    % save current image comment (to be used later in image save)
    handles.currentImageComment = info.Comment{1};
else
    handles.currentImageComment = '';
end
 
set(handles.editSize, 'String', sprintf('SIZE (W x H) : %d x %d', info.Width, info.Height));
set(handles.editComment, 'String', sprintf('COMMENT: %s', handles.currentImageComment));
set(handles.editPath', 'String', handles.fullPath);
 
 
RGB = imread(handles.fullPath);
 
handles.RGB = RGB;
handles.RGB2 = RGB;
handles.fileLoaded = 1;
handles.fileLoaded2 = 0;
 
set(handles.axes1,'Visible','off'); set(handles.axes2,'Visible','off');
set(handles.axesHist1,'Visible','off'); set(handles.axesHist2,'Visible','off');
set(handles.textHist1, 'Visible', 'off');
axes(handles.axesHist2); cla;
set(handles.textHist2, 'Visible', 'off');
 
axes(handles.axes1); cla; imshow(RGB);
axes(handles.axes2); cla;
 
handles = updateHistograms(handles);
 
guidata(hObject, handles);
 
 
 
% --- Executes on button press in CopyButton.
function CopyButton_Callback(hObject, eventdata, handles)
% hObject    handle to CopyButton (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
if (handles.fileLoaded==1)
    handles.RGB2 = handles.RGB;
    axes(handles.axes2); imshow(handles.RGB2);
    handles.fileLoaded2 = 1;
    handles = updateHistograms(handles);
    guidata(hObject, handles);
else
    h = msgbox('No primary file has been loaded!','Error','error');
end
 
% --- Executes on button press in MedianButton.
function MedianButton_Callback(hObject, eventdata, handles)
% hObject    handle to MedianButton (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
if (handles.fileLoaded==1)
 
    [M,N,ttt] = size(handles.RGB);
 
    RUN = 1;
 
    while (RUN==1)
 
        prompt = {'Enter Median Row Factor (0-5%):','Enter Median Column Factor (0-5%):'};
        dlg_title = 'Enter Median Parameters:';
        num_lines = 1;
        def = {'2','2'};
        answer = inputdlg(prompt,dlg_title,num_lines,def);
       if (isempty(answer))
            return;
        end
 
        M1 = str2num(answer{1})/100;
        M2 = str2num(answer{2})/100;
 
        if ((str2num(answer{1})>=0) & (str2num(answer{1})<=5)) & ((str2num(answer{2})>=0) & (str2num(answer{2})<=5))
            RUN = 0;
        end
    end
 
    M1 = round(M1 * M);
    M2 = round(M2 * N);
 
    w = waitbar(0, 'Median filtering ... Please wait ...');
    handles.RGB2(:,:,1) = medfilt2(handles.RGB(:,:,1),[M1 M2]);
    waitbar(1/3, w);
    handles.RGB2(:,:,2) = medfilt2(handles.RGB(:,:,2),[M1 M2]);
    waitbar(2/3, w);
    handles.RGB2(:,:,3) = medfilt2(handles.RGB(:,:,3),[M1 M2]);
    close(w);
    axes(handles.axes2); imshow(handles.RGB2);
    handles.fileLoaded2 = 1;
    handles = updateHistograms(handles);
 
    guidata(hObject, handles);
else
    h = msgbox('No primary file has been loaded!','Error','error');
end
 
% --- Executes on button press in SharpButton.
function SharpButton_Callback(hObject, eventdata, handles)
% hObject    handle to SharpButton (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
if (handles.fileLoaded==1)
    H = fspecial('unsharp');
    handles.RGB2(:,:,1) = imfilter(handles.RGB(:,:,1),H,'replicate');
    handles.RGB2(:,:,2) = imfilter(handles.RGB(:,:,2),H,'replicate');
    handles.RGB2(:,:,3) = imfilter(handles.RGB(:,:,3),H,'replicate');
    axes(handles.axes2); imshow(handles.RGB2);
    handles.fileLoaded2 = 1;
    handles = updateHistograms(handles);
    guidata(hObject, handles);
else
    h = msgbox('No primary file has been loaded!','Error','error');
end
 
% --- Executes on button press in MotionButton.
function MotionButton_Callback(hObject, eventdata, handles)
% hObject    handle to MotionButton (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
if (handles.fileLoaded==1)
 
    [M,N,ttt] = size(handles.RGB);
    D = max(M,N);
 
    RUN = 1;
 
    while (RUN==1)
 
        prompt = {'Enter Motion Length (0-15%):','Enter Motion Angle (0-360):'};
        dlg_title = 'Enter Motion Parameters:';
        num_lines = 1;
        def = {'1','0'};
        answer = inputdlg(prompt,dlg_title,num_lines,def);
        if (isempty(answer))
            return;
        end
       
        M1 = str2num(answer{1})/100;
        M2 = str2num(answer{2});
 
        if ((str2num(answer{1})>=0) & (str2num(answer{1})<=15))
            RUN = 0;
        end
    end
 
    H = fspecial('motion',D * M1,M2);
    w = waitbar(0, 'Motion filtering ... Please wait ...');
    handles.RGB2(:,:,1) = imfilter(handles.RGB(:,:,1),H,'replicate');
    waitbar(1/3, w);
    handles.RGB2(:,:,2) = imfilter(handles.RGB(:,:,2),H,'replicate');
    waitbar(2/3, w);
    handles.RGB2(:,:,3) = imfilter(handles.RGB(:,:,3),H,'replicate');
    close(w);
    axes(handles.axes2); imshow(handles.RGB2);
    handles.fileLoaded2 = 1;
    handles = updateHistograms(handles);
    guidata(hObject, handles);
else
   h = msgbox('No primary file has been loaded!','Error','error');
end
 
% --- Executes on button press in GrayButton.
function GrayButton_Callback(hObject, eventdata, handles)
% hObject    handle to GrayButton (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
if (handles.fileLoaded==1)
    Gray = rgb2gray(handles.RGB);
    handles.RGB2(:,:,1) = Gray;
    handles.RGB2(:,:,2) = Gray;
    handles.RGB2(:,:,3) = Gray;
    axes(handles.axes2); imshow(handles.RGB2);
    handles.fileLoaded2 = 1;
    handles = updateHistograms(handles);
    guidata(hObject, handles);
else
    h = msgbox('No primary file has been loaded!','Error','error');
end
 
 
% --- Executes on button press in SaveButton.
function SaveButton_Callback(hObject, eventdata, handles)
% hObject    handle to SaveButton (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
 
if (handles.fileLoaded2==1)
    [file,path] = uiputfile('*.jpg','Save Secondary Image As');
    imwrite(handles.RGB2,[path file],'jpg');
else
    h = msgbox('No secondary file has been loaded!','Save Error','error');
end
 
 
% --- Executes on button press in ColorsButton.
function ColorsButton_Callback(hObject, eventdata, handles)
% hObject    handle to ColorsButton (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
if (handles.fileLoaded==1)
    RUN = 1;
 
    while (RUN==1)
 
        prompt = {'Enter threshold for RED (0-255):','Enter threshold for GREEN (0-255):','Enter threshold for BLUE (0-255):'};
        dlg_title = 'RGB Thresholds:';
        num_lines = 1;
        def = {'30','30','30'};
        answer = inputdlg(prompt,dlg_title,num_lines,def);
        if (isempty(answer))
            return;
        end
        T1 = str2num(answer{1});
        T2 = str2num(answer{2});
        T3 = str2num(answer{3});
       
 
        if ((T1>=0) & (T1<=256)) & ((T2>=0) && (T2<=256)) & ((T3>=0) && (T3<=256))
            RUN = 0;
        end
    end
   
    handles.RGB2 = filterColors(handles.RGB, T1, T2, T3, 5);
    axes(handles.axes2); imshow(handles.RGB2);
    handles.fileLoaded2 = 1;
    handles = updateHistograms(handles);
 
    guidata(hObject, handles);   
else
    h = msgbox('No primary file has been loaded!','Error','error');
end
 
 
% --- Executes on button press in ColorButton2.
function ColorButton2_Callback(hObject, eventdata, handles)
% hObject    handle to ColorButton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
 
if (handles.fileLoaded==1)
    RUN = 1;
 
    while (RUN==1)
 
        prompt = {'Enter weight for RED (0-200%):','Enter weight for GREEN (0-200%):','Enter weight for BLUE (0-200%):'};
        dlg_title = 'Enter Color Weight Parameters:';
        num_lines = 1;
        def = {'100','100','100'};
        answer = inputdlg(prompt,dlg_title,num_lines,def);
        if (isempty(answer))
            return;
        end
        W1 = str2num(answer{1});
        W2 = str2num(answer{2});
        W3 = str2num(answer{3});
       
 
        if ((W1>=0) & (W1<=200)) & ((W2>=0) && (W2<=200)) & ((W3>=0) && (W3<=200))
            RUN = 0;
        end
    end
   
    handles.RGB2 = handles.RGB;
    R = double(handles.RGB2(:,:,1));
    G = double(handles.RGB2(:,:,2));
    B = double(handles.RGB2(:,:,3));
   
    R = R * W1 ./ 100;
    G = G * W2 ./ 100;
    B = B * W3 ./ 100;
   
    R(find(R>256)) = 256;
    G(find(G>256)) = 256;
    B(find(B>256)) = 256;
   
    handles.RGB2(:,:,1) = R;
    handles.RGB2(:,:,2) = G;
    handles.RGB2(:,:,3) = B;
   
    axes(handles.axes2); imshow(handles.RGB2);
    handles.fileLoaded2 = 1;
    handles = updateHistograms(handles);
    guidata(hObject, handles);   
else
    h = msgbox('No primary file has been loaded!','Error','error');
end
 
 
% --- Executes on button press in InvColorButton.
function InvColorButton_Callback(hObject, eventdata, handles)
% hObject    handle to InvColorButton (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
if (handles.fileLoaded==1)
       
    R = double(handles.RGB(:,:,1));
    G = double(handles.RGB(:,:,2));
    B = double(handles.RGB(:,:,3));
       
    handles.RGB2(:,:,1) = 256 - R;
    handles.RGB2(:,:,2) = 256 - G;
    handles.RGB2(:,:,3) = 256 - B;
   
    axes(handles.axes2); imshow(handles.RGB2);
    handles.fileLoaded2 = 1;
    handles = updateHistograms(handles);
    guidata(hObject, handles);   
else
    h = msgbox('No primary file has been loaded!','Error','error');
end
 
 
 
 
 
function editSize_Callback(hObject, eventdata, handles)
% hObject    handle to editSize (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,'String') returns contents of editSize as text
%        str2double(get(hObject,'String')) returns contents of editSize as a double
 
 
% --- Executes during object creation, after setting all properties.
function editSize_CreateFcn(hObject, eventdata, handles)
% hObject    handle to editSize (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called
 
% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
 
 
function editComment_Callback(hObject, eventdata, handles)
% hObject    handle to editComment (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,'String') returns contents of editComment as text
%        str2double(get(hObject,'String')) returns contents of editComment as a double
 
 
% --- Executes during object creation, after setting all properties.
function editComment_CreateFcn(hObject, eventdata, handles)
% hObject    handle to editComment (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called
 
% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
 
 
 
 
function editPath_Callback(hObject, eventdata, handles)
% hObject    handle to editPath (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,'String') returns contents of editPath as text
%        str2double(get(hObject,'String')) returns contents of editPath as a double
 
 
% --- Executes during object creation, after setting all properties.
function editPath_CreateFcn(hObject, eventdata, handles)
% hObject    handle to editPath (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called
 
% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
 
 
 
% --- Executes on slider movement.
function sliderBright_Callback(hObject, eventdata, handles)
% hObject    handle to sliderBright (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
set(handles.editBright,'String', sprintf('%10s:%4.0f%%', 'Brightness', 100*get(handles.sliderBright,'Value')));
 
 
% --- Executes during object creation, after setting all properties.
function sliderBright_CreateFcn(hObject, eventdata, handles)
% hObject    handle to sliderBright (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
 
 
% --- Executes on slider movement.
function sliderContrast_Callback(hObject, eventdata, handles)
% hObject    handle to sliderContrast (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
set(handles.editContrast,'String', sprintf('%10s:%4.0f%%', 'Contrast', 100*get(handles.sliderContrast,'Value')));
 
 
% --- Executes during object creation, after setting all properties.
function sliderContrast_CreateFcn(hObject, eventdata, handles)
% hObject    handle to sliderContrast (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
 
 
 
function editBright_Callback(hObject, eventdata, handles)
% hObject    handle to editBright (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,'String') returns contents of editBright as text
%        str2double(get(hObject,'String')) returns contents of editBright as a double
 
 
% --- Executes during object creation, after setting all properties.
function editBright_CreateFcn(hObject, eventdata, handles)
% hObject    handle to editBright (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called
 
% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
 
 
 
 
function editContrast_Callback(hObject, eventdata, handles)
% hObject    handle to editContrast (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,'String') returns contents of editContrast as text
%        str2double(get(hObject,'String')) returns contents of editContrast as a double
 
 
% --- Executes during object creation, after setting all properties.
function editContrast_CreateFcn(hObject, eventdata, handles)
% hObject    handle to editContrast (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called
 
% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
 
 
 
% --- Executes on button press in pushbuttonContrastBrightness.
function pushbuttonContrastBrightness_Callback(hObject, eventdata, handles)
% hObject    handle to pushbuttonContrastBrightness (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
if (handles.fileLoaded==1)
    handles.RGB2 = changeBrightness(handles.RGB, get(handles.sliderBright, 'Value'), get(handles.sliderContrast, 'Value'));
    axes(handles.axes2); imshow(handles.RGB2);
    handles.fileLoaded2 = 1;
    handles = updateHistograms(handles);
    guidata(hObject, handles);
else
    h = msgbox('No primary file has been loaded!','Error','error');
end
 
 
function handlesNew = updateHistograms(handles)
handlesNew = handles;
if (handles.fileLoaded == 1)
    set(handles.textHist1, 'Visible', 'on');
    axes(handlesNew.axesHist1);
    cla;
    ImageData1 = reshape(handlesNew.RGB(:,:,1), [size(handlesNew.RGB, 1) * size(handlesNew.RGB, 2) 1]);
    ImageData2 = reshape(handlesNew.RGB(:,:,2), [size(handlesNew.RGB, 1) * size(handlesNew.RGB, 2) 1]);
    ImageData3 = reshape(handlesNew.RGB(:,:,3), [size(handlesNew.RGB, 1) * size(handlesNew.RGB, 2) 1]);
    [H1, X1] = hist(ImageData1, 1:5:256);
    [H2, X2] = hist(ImageData2, 1:5:256);
    [H3, X3] = hist(ImageData3, 1:5:256);
    hold on;
    plot(X1, H1, 'r');
    plot(X2, H2, 'g');
    plot(X3, H3, 'b');   
    axis([0 256 0 max([H1 H2 H3])]);
end
if (handlesNew.fileLoaded2 == 1)
    set(handles.textHist2, 'Visible', 'on');
    axes(handlesNew.axesHist2);
    cla;
    ImageData1 = reshape(handlesNew.RGB2(:,:,1), [size(handlesNew.RGB2, 1) * size(handlesNew.RGB2, 2) 1]);
    ImageData2 = reshape(handlesNew.RGB2(:,:,2), [size(handlesNew.RGB2, 1) * size(handlesNew.RGB2, 2) 1]);
    ImageData3 = reshape(handlesNew.RGB2(:,:,3), [size(handlesNew.RGB2, 1) * size(handlesNew.RGB2, 2) 1]);
    [H1, X1] = hist(ImageData1, 1:5:256);
    [H2, X2] = hist(ImageData2, 1:5:256);
    [H3, X3] = hist(ImageData3, 1:5:256);
    hold on;
    plot(X1, H1, 'r');
    plot(X2, H2, 'g');
    plot(X3, H3, 'b');   
    axis([0 256 0 max([H1 H2 H3])]);   
end
 
 
 
% --- Executes on button press in RotateButton.
function RotateButton_Callback(hObject, eventdata, handles)
% hObject    handle to RotateButton (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
handles.RGB2 = imrotate(handles.RGB, round(get(handles.sliderRotate,'Value')));
handles.fileLoaded = 1;
 
axes(handles.axes2); cla; imshow(handles.RGB2);
 
handles = updateHistograms(handles);
 
guidata(hObject, handles);
 
 
 
% --- Executes on slider movement.
function sliderRotate_Callback(hObject, eventdata, handles)
% hObject    handle to sliderRotate (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
set(handles.editRotate,'String', sprintf('%10s:%4.0f', 'Rotate', round(get(handles.sliderRotate,'Value'))));
 
% --- Executes during object creation, after setting all properties.
function sliderRotate_CreateFcn(hObject, eventdata, handles)
% hObject    handle to sliderRotate (see GCBO)
% eventdata  reserved - to be
и т.д.................


Перейти к полному тексту работы


Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru или advego.ru


Смотреть полный текст работы бесплатно


Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.