Opencv绘制直方图及创建按钮遇到的问题
2016-11-05 14:37
441 查看
创建按钮,总是报错,一开始是报错缺少QT支持,后来创建QT Application程序编译不报错,运行时会
![](http://img.blog.csdn.net/20161105145916425?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
下面是单独实现绘制直方图代码,解决上面方法的方案,求大神知道
#include "testqt_1101.h"
#include <QtWidgets/QApplication>
#include <opencv2\core\utility.hpp>
#include <opencv2\imgproc.hpp>
#include <opencv2\highgui.hpp>
#include <iostream>
using namespace std;
using namespace cv;
Mat img= imread("C:\\Users\\hasee\\Desktop\\cat2.jpg");
void showHistoCallback(int state, void* userData);
void equlizeCallback(int state, void* userData);
int main()
{
vector<Mat> bgr;
split(img, bgr);
int numbins = 256;
float range[] = { 0,256 };
const float* histRange = { range };
Mat b_hist, g_hist, r_hist;
calcHist(&bgr[0], 1, 0, Mat(), b_hist, 1, &numbins, &histRange);
calcHist(&bgr[1], 1, 0, Mat(), g_hist, 1, &numbins, &histRange);
calcHist(&bgr[2], 1, 0, Mat(), r_hist, 1, &numbins, &histRange);
int width = 512;
int height = 300;
Mat histImage(height, width, CV_8UC3, Scalar(20, 20, 20));
normalize(b_hist, b_hist, 0, height, NORM_MINMAX);
normalize(g_hist, g_hist, 0, height, NORM_MINMAX);
normalize(r_hist, r_hist, 0, height, NORM_MINMAX);
int binStep = cvRound((float)width / (float)numbins);
for (int i = 1; i < numbins; i++)
{
line(histImage,
Point(binStep*(i - 1), height - cvRound(b_hist.at<float>(i - 1))),
Point(binStep*(i), height - cvRound(b_hist.at<float>(i))),
Scalar(255, 0, 0));
line(histImage,
Point(binStep*(i - 1), height - cvRound(g_hist.at<float>(i - 1))),
Point(binStep*(i), height - cvRound(g_hist.at<float>(i))),
Scalar(0, 255, 0));
line(histImage,
Point(binStep*(i - 1), height - cvRound(r_hist.at<float>(i - 1))),
Point(binStep*(i), height - cvRound(r_hist.at<float>(i))),
Scalar(0, 0, 255));
}
imshow("直方图", histImage);
//namedWindow("Input");
//createButton("ss", showHistoCallback, NULL, QT_PUSH_BUTTON, 0);
//createButton("直方图均衡化",equlizeCallback,NULL,QT_PUSH_BUTTON,0);
//imshow("Input", img);*/
waitKey(0);
return 0;
}
相关文章推荐
- 开发中遇到的问题-动态创建按钮并且添加带有参数的点击事件
- 如何创建镂空圆角按钮以及解决某些机型绘制问题
- 使用Action创建一个JButton后,改变该按钮的名字可能会遇到意想不到的问题
- 使用htmlcontrol-for-symbian创建自定义list遇到的问题
- opencv相关问题理解(4)直方图操作!!
- 动态创建的按钮上的字体问题
- 创建“维护计划”时遇到的问题
- 关于用c生成的dll在使用其他供应商的工具创建可执行模块时遇到的一些问题
- 利用DOM创建input时,遇到的问题解决方法
- 解决vs2008 sp1 创建工作流遇到“An error was encountered during code generation……”的问题
- OpenCV自学遇到的问题
- 图片按钮,使用get方法提交数据时遇到的严重问题!
- 创建VS.Net外接程序时遇到的问题
- 在北京OURS-PXA270移植基于Qt3+opencv-0.9.7的应用程序,遇到的种种问题
- cuda 自己创建工程,复制sdk中的代码,执行遇到的问题
- 创建FTP隔离用户所遇到的问题 推荐
- oracle学习中遇到的问题——用select语句创建现有表的副本
- 创建用 Active Directory 隔离用户的FTP 站点遇到的问题
- 遇到ActiveX无法创建scrīpting.FileSystemObject的问题,我是如何解决的
- 菜单绘制遇到的一点问题