基于HSI颜色模型实现去除照片的“红眼现象”

消除红眼 matlab 实现 消除红眼 matlab实现 立即下载

接上篇博文中的RGB颜色模型转换为HSI颜色模型,做了消除红眼的算法。

基本的算法描述如下:


代码:

#include "opencv_libs.h"
#include <highgui.h>
#include <cv.h>
#include <math.h>

/*
 * 描述:基于HSI颜色模型消除红眼
 * 作者:qdsclove(qdsclove@gmail.com)
 * 时间:22:49 4/18 星期四 2013
 */

/* 鼠标选择的矩形 */
CvRect rect;
/* 标记是否在画 */
bool draw = false;
/* 确定下来的眼睛矩形 */
CvRect eyeRect;
/* 是否选定眼睛区域 */
bool isFinalRect = false;

IplImage* img;  
IplImage* temp;  
IplImage* original; 

// 将HSI颜色空间的三个分量组合起来,便于显示
IplImage* catHSImage(CvMat* HSI_H, CvMat* HSI_S, CvMat* HSI_I)
{
	IplImage* HSI_Image = cvCreateImage( cvGetSize( HSI_H ), IPL_DEPTH_8U, 3 );

	for(int i = 0; i < HSI_Image->height; i++)
	{
		for(int j = 0; j < HSI_Image->width; j++)
		{
			double d = cvmGet( HSI_H, i, j );
			int b = (int)(d * 255/360);
			d = cvmGet( HSI_S, i, j );
			int g = (int)( d * 255 );
			d = cvmGet( HSI_I, i, j );
			int r = (int)( d * 255 );

			cvSet2D( HSI_Image, i, j, cvScalar( b, g, r ) );
		}
	}
	return HSI_Image;
}

// 将HSI颜色模型的数据转换为RGB颜色模型的图像
IplImage* HSI2RGBImage(CvMat* HSI_H, CvMat* HSI_S, CvMat* HSI_I)
{
	IplImage * RGB_Image = cvCreateImage(cvGetSize(HSI_H), IPL_DEPTH_8U, 3 );

	int iB, iG, iR;
	for(int i = 0; i < RGB_Image->height; i++)
	{
		for(int j = 0; j < RGB_Image->width; j++)
		{
			// 该点的色度H
			double dH = cvmGet( HSI_H, i, j );
			// 该点的色饱和度S
			double dS = cvmGet( HSI_S, i, 
使用OpenCV实现人脸部和眼睛的识别 使用OpenCV实现人脸部和眼睛的识别,代码和用到的资源已经打包。觉着有用就下载吧。 立即下载

相关推荐

多摄像头同步技术:帧同步信号在Sensor与解串器间的传递机制

本文深入探讨了多摄像头系统中帧同步信号的两种核心传递机制:由解串器统一发号施令或由主Sensor作为“带头大哥”。文章对比了两种方案在同步精度、硬件复杂度、成本及适用场景上的差异,并提供了实战配置要点与调试心法,为车载环视、ADAS及工业检测等应用提供关键的技术选型与实施指导。

weixin_29193359的博客 434

sap销售发货的流程_SAP销售订单发货后如何实现发票的自动创建?

问SAP销售订单发货后如何实现发票的自动创建?答业务场景有些快消零售企业,SAP系统单据量大,单据金额少,一般在销售发货后即可确认收入。此时无需人工在系统内操作VF01或者VF04进行开票操作,可将该操作设置成后台作业进行自动批量开票,具体操作如下:1、定义任务:VF06输入完以上信息,点击保存进入以下界面:说明:当前日期的意思是“开票的日期”等于“系统电脑中的当前日期”当前日期+/-...

weixin_42358409的博客 3361

基于Apache SeaTunnel构建CDC数据同步管道

Apache SeaTunnel是一个数据集成开发平台,其发展经历了几个重要阶段:ETL时代(90年代):面向结构化数据库的数据同步,用于构建数据仓库。MPP和分布式技术流行:使用技术如Hive进行数据仓库的构建。此阶段主要使用mapreduce程序进行数据搬运和转换。数据湖技术流行:重视数据集成,强调先同步数据至数据湖仓储,再进行业务面向的转换和设计。CDC,即变更数据捕获,是一种捕获数据库变更事件(如插入、更新、删除)的技术。

weixin_54625990的博客 2172

从查表法到实时计算:SimpleFOC库中正弦函数优化的技术演进

本文深入探讨了SimpleFOC库v2.0.1版本中正弦函数优化技术的演进,从传统查表法到实时计算的创新实践。通过定点数优化、对称性利用和分段线性插值等关键技术,实现了在嵌入式电机控制中的高效三角函数计算,显著提升性能和资源利用率。

weixin_28273593的博客 452

论文、报告中那些乱七八糟的图(甘特图、卡吉图,桑基图,小提琴图,弦图,螺旋图,风玫瑰图)

在一些论文或报告中,总是会看到一些熟悉的图,但作者总是不能好好说话,非得搞个洋名字、缩写字或者半洋半中的词来显示它多么高大上,有时候这种故弄玄虚、华而不实的写法也实在是让人看了不伦不类,图首先是让读者更容易看懂的,不是让你来故作高深、玩玄学的。

David_jiang 9427

数据分析学习总结笔记02:聚类分析及其R语言实现

** 数据分析学习总结笔记02:聚类分析Cluster Analysis ** 1. 聚类分析概述 1.1 聚类分析的直观理解 在科学研究、社会调查或日常生活中,通过观察个体的特征,将群体中的个体归为不同的族群/簇(Cluster)。 2. 聚类分析的方法 3. 聚类分析的应用 3.1 市场营销——精准营销 在市场营销中,基于消费者的历史交易信息、消费者背景等对消费者进行划分,从而对不同类型的消费...

weixin_41961559的博客 4420

蓝牙抓包实战:用nrf52840和Wireshark解析广播包与SCAN_RSP的完整流程

本文提供了一份完整的蓝牙抓包实战指南,详细介绍了如何使用nRF52840 Dongle和Wireshark捕获并解析蓝牙广播包与SCAN_RSP。内容涵盖环境搭建、广播事件分析、数据包结构拆解以及常见连接问题的调试技巧,旨在帮助开发者和物联网工程师深入理解BLE底层通信,提升硬件调试能力。

weixin_29279153的博客 494

手把手教你学BSP(11.3)--BSP实例:基于Raspberry Pi 4 Model B的Linux BSP开发实例

通过以上步骤,我们完成了一个基于Raspberry Pi 4 Model B的Linux BSP开发过程,包括硬件初始化、设备驱动编写、Bootloader配置、内核配置和编译,以及最终映像的生成。每个步骤都非常重要,确保每一步都正确无误才能使整个系统正常运行。

MHD0815的博客 1010

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: OpenCV实现RGB颜色空间和HSI颜色空间的相互转换
下一篇: 《学习OpenCV》练习题第四章第七题abc
Stk_OverFlow
博客等级 码龄14年 27粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值