图片序列hsv的比较

本文是自己学习图像处理的一个编程,关于多张图片的HSV的比较,确定多张图片与参考图片的H值、S值、V值的差异,从而去做一些其他工程。
摘要由CSDN通过智能技术生成

    本文是自己学习图像处理的一个编程,关于多张图片的HSV的比较,确定多张图片与参考图片的H值、S值、V值的差异,从而去做一些其他工程。

    以下为代码段:

#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>  
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>  
#include<vector>

using namespace std;
using namespace cv;
double p[3];

void Hvalue(IplImage* src, int maxIterations,int count)
{


		IplImage* hsv = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 3);

		//将RGB图像转为HSV图像的函数
		cvCvtColor(src, hsv, CV_BGR2HSV);

		double sum1 = 0, sum2 = 0, sum3 = 0;

		IplImage* Himg = cvCreateImage(cvGetSize(hsv), IPL_DEPTH_8U, 1);
		IplImage* Simg = cvCreateImage(cvGetSize(hsv), IPL_DEPTH_8U, 1);
		IplImage* Vimg = cvCreateImage(cvGetSize(hsv), IPL_DEPTH_8U, 1);

		//cvSplit( const CvArr* src,CvArr* dst0,CvArr* dst1,CvArr* dst2,CvArr* dst3 )函数

		cvSplit(hsv, Vimg, Simg, Himg, 0);

		for (int y = 0; y < hsv->height; y++)
		{
			for (int x = 0; x < hsv->width; x++)
			{
				float value1 = cvGetReal2D(Himg, y, x);
				float value2 = cvGetReal2D(Simg, y, x);
				float value3 = cvGetReal2D(Vimg, y, x);

				sum1 += value1;
				sum2 += value2;
				sum3 += value3;
			}
			sum1 = sum1 / (hsv->height*hsv->width);
			sum2 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值