在QT 上显示pencv图片

情况1:PC机上

(1)使用QT Creator建立一个空白QT工程,在工程文件中加入:

INCLUDEPATH += /usr/local/include/opencv

LIBS += `pkg-config opencv --cflags --libs`

(2)添加源文件mian.cpp,主要是实现Iplmage到QImage的转换

#include <iostream>
#include <cstring>
#include <qimage.h>
#include <QVector>
#include <QtGui>
#include <cv.h>
#include <highgui.h>
using namespace std;
IplImage *QImageToIplImage(const QImage * qImage)
{
    int width = qImage->width();
    int height = qImage->height();

    CvSize Size;
    Size.height = height;
    Size.width = width;

    IplImage *charIplImageBuffer = cvCreateImage(Size, IPL_DEPTH_8U, 1);
    char *charTemp = (char *) charIplImageBuffer->imageData;

    for (int y = 0; y < height; ++y)
    {
        for (int x = 0; x < width; ++x)
        {
            int index = y * width + x;
            charTemp[index] = (char) qGray(qImage->pixel(x, y));
        }
    }

    return charIplImageBuffer;
}

/* Usage:
QImage *qi = IplImageToQImage(iplCurrentImage, &data);
QPixmap pix = QPixmap(*qi);
delete qi;
if(data)
free(data);
cvReleaseImage(&iplCurrentImage);
*/
QImage *IplImageToQImage(const IplImage * iplImage, uchar **data, double mini, double maxi)
{
    uchar *qImageBuffer = NULL;

    int width = iplImage->width;

    /* Note here that OpenCV image is stored so that each lined is 32-bits aligned thus
     * explaining the necessity to "skip" the few last bytes of each line of OpenCV image buffer.
     */
    int widthStep = iplImage->widthStep;
    int height = iplImage->height;

    switch (iplImage->depth)
    {
    case IPL_DEPTH_8U:
        if (iplImage->nChannels == 1)
        {
            /* Open
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值