一、 实验目的
编程实现去红眼算法
二、 实验内容与要求
完成去红眼算法实现
完成两只红眼同时去除的目的
完成图片的输入修改并且输出保存
完成RGB2HSI和HSI2RGB两个函数的编写
三、设计与实现:
主要代码:
% 加载路径
addpath(genpath(‘F:\课程\数字图像处理\实验1-2\素材\去红眼\’));
%addpath包括进调用函数
addpath(genpath(‘F:\课程\数字图像处理\实验1-2\’));
%genpath当前文件夹下所有文件
% 图片读取
[FileName,PathName] = uigetfile(‘F:\课程\数字图像处理\实验1-2\素材\去红眼*.jpg’,‘请选择一幅jpg图像’);
[picture_in,map]=imread(FileName);%imread函数实现图像导入
% imtool(FileName); %imtool函数图像预览
% 彩色判断
if ndims(picture_in)~=3 % ndims函数判断矩阵维度
disp(‘非彩色图像’);
imshow(picture_in); %显示灰度图像
% 参数预设
else %去红眼操作
h1=1/8; %预设对rol区域内-pi/4<H<pi/4,S>0.2的像素点进行去红眼操作
h2=1/8; %H色调,S色饱和度
s=0.2; %色调范围0–1
fprintf('预设对rol区域内-pi/4<H<pi/4,S>0.2的像素点进行去红眼操作,即令S=0\n’)
end
% 区域选定
%先画左眼,再画右眼
fprintf(‘请绘制左眼区域\n’) %绘制去红眼的rol区域