OpenCV直方图计算,以及颜色迁移
来源:互联网 发布:如何取消淘宝店铺差评 编辑:程序博客网 时间:2024/06/05 17:02
本文的前两个代码主要是来自于书本《OPenCV计算机视觉编程攻略》最后一个代码是根据前两个代码做的一个颜色迁移
黑白图片的直方图计算
//// main.cpp// TextureFusion2//// Created by coriander on 10/14/17.// Copyright © 2017 xiaowoCorp. All rights reserved.//#include <iostream>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/opencv.hpp>////////////filename format//r11 r12 r13//r21 r22 r23//r31 r32 r33//t1 t2 t3/////////using namespace std;class Histogram1D{private: int histSize[1];//直方图中箱子的数目 float hranges[2]; const float*ranges[1]; int channels[1];public: Histogram1D(){ histSize[0]=256; hranges[0]=0.0; hranges[1]=256; ranges[0]=hranges; channels[0]=0; } cv::Mat getHistogram(const cv::Mat& image){ cv::Mat hist; cv::calcHist(&image, 1, channels, cv::Mat(), hist, 1, histSize, ranges); return hist; } cv::Mat getHistogramImage(const cv::Mat &image,int zoom=1){ cv::Mat hist=getHistogram(image); return getImageOfHistogram(hist,zoom); } static cv::Mat getImageOfHistogram(const cv::Mat &hist,int zoom){ double maxVal=0; double minVal=0; cv::minMaxLoc(hist, &minVal, &maxVal,0,0); int histSize=hist.rows; cv::Mat histImg(histSize*zoom,histSize*zoom,CV_8U,cv::Scalar(255)); int hpt=static_cast<int>(0.9*histSize); for(int h=0;h<histSize;h++){ float binVal=hist.at<float>(h); if(binVal >0){ int intensity=static_cast<int >(binVal*hpt/maxVal); cv::line(histImg, cv::Point(h*zoom,histSize*zoom), cv::Point(h*zoom,(histSize-intensity)*zoom), cv::Scalar(0),zoom); } } return histImg; }};int main(){ cv::Mat image1=cv::imread("Mesh0.jpg",0); Histogram1D h; cv::Mat histo=h.getHistogram(image1); for(int i=0;i<256;i++) cout<<"value"<<i<<"="<<histo.at<float>(i)<<endl; cv::namedWindow("Histgram"); cv::imshow("Histgram", h.getHistogramImage(image1)); cv::waitKey(); return 0;}
阅读全文
0 0
- OpenCV直方图计算,以及颜色迁移
- opencv 基于灰度直方图的颜色迁移
- opencv(18)---直方图计算以及绘制
- opencv 颜色直方图
- opencv 颜色直方图
- OpenCV 实现颜色直方图
- 【OpenCV】直方图计算
- OpenCV 计算二维直方图
- opencv计算直方图
- opencv 计算直方图 calcHist()
- opencv实现灰度图像的直方图点计算以及灰度直方图显示
- OpenCV提取图像颜色直方图
- 颜色直方图opencv c++代码
- Opencv之直方图计算calcHist
- opencv 3.0 直方图的计算
- calcHist()计算图像直方图opencv
- 【opencv练习28 - 直方图计算】
- OpenCv计算直方图cv::calcHist
- 设计模式--责任链模式
- path-sum Java code
- OpenCV实现彩色点的实时追踪
- LeetCode-104. Maximum Depth of Binary Tree
- 先到先服务(FCFS)算法C语言,Java语言实现
- OpenCV直方图计算,以及颜色迁移
- QGis二次开发基础 -- 添加矢量要素功能
- 【二分法】LeetCode-Search Insert Position
- 拉格朗日对偶
- activity与fragment的区别
- [LeetCode]19. Remove Nth Node From End of List
- Linux 网络栈剖析
- Spring框架之IoC容器—ListableBeanFactory接口
- Scala继承的特点