5. 把一幅彩色图像的H、S、I分量单独显示。
#include <cv.h>
#include <highgui.h>
# include <math.h>
#define M_PI 3.1415
void RGB_to_HSI(IplImage *src, IplImage *dst);
int main(void)
{
IplImage * oo = cvLoadImage ("6013202130.jpg", );
IplImage * xx = cvCreateImage (cvGetSize(oo), , );
RGB_to_HSI(oo, xx);
cvNamedWindow("原图", );
cvNamedWindow("HSI", );
cvShowImage("原图", oo);
cvShowImage("HSI" , xx);
cvWaitKey();
cvReleaseImage(&xx);
cvReleaseImage(&oo);
return ;
} void RGB_to_HSI(IplImage *src, IplImage *dst)
{
int i, j;
double b, g, r, numm, den, min, theta, H, S, I;
CvScalar s0;
for (i = ; i<src->height; i++)
for (j = ; j<src->width; j++)
{ s0 = cvGet2D(src, i, j);
b = s0.val[] / ;//rgb归一化
g = s0.val[] / ;
r = s0.val[] / ;
//几何推导法转换
numm = 0.5*((r - g) + (r - b));
den = sqrt((r - g)*(r - g) + (r - b)*(g - b));
if (den == )
H = ;
else
{
theta = acos(numm / den);
if (b>g)
H = ( * M_PI - theta) / ( * M_PI);
else
H = theta / ( * M_PI);
}
min = (b>g) ? g : b;
min = (min>r) ? r : min;
den = r + g + b;
if (den == )
S = ;
else
S = - * min / den;
I = (r + g + b) / ;
cvSet2D(dst, i, j, cvScalar(H * , S * , I * ));
}
}

5. 把一幅彩色图像的H、S、I分量单独显示。的更多相关文章
- 4. 把一幅彩色图像的R、G、B分量单独显示。
#include <cv.h> #include <highgui.h> int main(void) { IplImage* oo = cvLoadImage(); IplI ...
- opencv::将两幅图像合并后,在同一个窗口显示;并将合并的图像流保存成视频文件
/** * @file main-opencv.cpp * @date July 2014 * @brief An exemplative main file for the use of ViBe ...
- 解决Android Studio 2.2.3中添加.cpp .h文件在Project->Android无法显示,无法正常编译问题。
搭配使用 Android Studio 2.2 或更高版本与 Android Plugin for Gradle 版本 2.2.0 或更高版本时,您可以将 C 和 C++ 代码编译到 Gradle 与 ...
- (惊艳)基于谷底最小值的阈值的图像分割(改进HSV中的H分量可以用imhist(H)提取)
任务概述:将这张图片作为输入 , 然后抠出只有斑点的图片 灵感来源: 1. 黄色部分用绿色的掩盖掉得到图片B,然后A和B进行∩运算,相同的设置为0 2.统计单词的子母数,开辟一个26个元素的数组,进来 ...
- 彩色图像与二值图像(mask)点乘
问题描述:给出一幅彩色图像和一张mask二值图像,其中mask和彩色图像大小相同,感兴趣的部分为1,其余部分为0,请用mask与彩色图像点乘,将感兴趣区域显示出来. 点乘的本质是mask中是二值图像, ...
- 每天进步一点点------Sobel算子(3)基于彩色图像边缘差分的运动目标检测算法
摘 要: 针对目前常用的运动目标提取易受到噪声影响.易出现阴影和误检漏检等情况,提出了一种基于Sobel算子的彩色边缘图像检测和帧差分相结合的检测方法.首先用Sobel算子提取视频流中连续4帧图像的 ...
- df -h统计的信息与du -sh不一致的原因(转)
有时候会遇到这样的问题:df -h统计一个目录,显示有约100M可用空间,使用了5G:而用du -sh统计该目录下的文件大小,却发现总共才占用了1G.也就是说,二者统计结果差距巨大. 例如: 1.df ...
- Linux的硬盘使用情况、挂载、SSD挂载(查看df -h不能看到的卷)
linux上的盘和window的有区别,磁盘空间必须挂载在目录上,要不然没用 对与新增的硬盘.SSD固态硬盘.挂载到linux上的操作如下: df -h #显示目前在Linux系统上的文件系 ...
- Attrib +s +a +h +r 隐藏文件原理与破解
制作了一个PE启动盘,不过这个启动盘不能深度隐藏,否则没效果,可以又想不让别人看见PE启动盘的一些内容,防止别人误删或者修改,于是就想找一种可以隐藏文件的方法,普通的隐藏文件的方法如下:
随机推荐
- MySQL_活动期间单笔订单最高的且满600元 判别是重激活客户还是10月注册客户_20161031
将29号和30号两个需求放到一个表当中 首先都满足在10.29到31号之间单笔订单最高的且满600元 数据结构为一个用户一个订单ID 一行一行的 上面是第一个表 我们当做主表 a 第二个表 我们找注册 ...
- nginx版本策略
近期Nginx发布了1.17.0主线版本与1.16.0稳定版本,并且发布了一篇文章< Introducing NGINX 1.16 and 1.17 >说明Nginx的版本更新策略.推荐分 ...
- vue之axios+php+mysql
博主原创,未经许可请勿转载 哦 1.axios配置请看上篇 2.mysql数据库编写,表名为area_list 3.json.php文件在notebeans中编写 <?php header('C ...
- 51nod 1443 路径和树——最短路生成树
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1443 不只是做一遍最短路.还要在可以选的边里选最短的才行. 以为是 ...
- 对于makefile传递参数的一些问题
makefile变量说明: 1.总控Makefile中使用“-e”参数覆盖下一层Makefile中的变量. 2.父级Makefile向子级Makefile传送变量方式:export <varia ...
- 异常:Error: Aesthetics must either be length one, or the same length as the dataProblems:AData
今天遇到一个异常,代码如下: set.seed(12345) require(ggplot2) AData <- data.frame(Glabel=LETTERS[1:7], A=rnorm( ...
- Python的subprocess子进程和管道进行交互
在很久以前,我写了一个系列,Python和C和C++的交互,如下 http://blog.csdn.net/marising/archive/2008/08/28/2845339.aspx 目的是解决 ...
- mysql 1069 数据库无法启动解决办法
mysql无缘无故的启动不了了. 在控制台里面用root连接,报错10061. 在服务管理里面启动,报错1069. 在网上找了一些解决方法,删除my.ini之类的,都无效.后来在百度经验里面找到了可行 ...
- 创建Maven项目步骤
(转自:http://blog.csdn.net/chuyuqing/article/details/28879477) 使用eclipse插件创建一个web project 首先创建一个Maven的 ...
- 7.12实习培训日志 Linux Docker
Linux 管理 RHEL7 的用户和组 用户的属性修改 chage -l [username] #查看用户信息 usermod --expiredate=YYYY-MM-DD [username] ...