码迷,mamicode.com
首页 > 其他好文 > 详细

雕刻效果的实现【OpenCV+QT】

时间:2017-04-30 12:31:03      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:amp   cpp   技术分享   win   from   data   topic   注意   void   

雕刻能够区分为凸雕和凹雕。

凸雕基右下角的点减去左上角的点。

凹雕是左上角的点减去右下角的点。

【效果图】

由于进行了缩放。效果看起来差一些。

技术分享

详细代码例如以下:

【效果处理代码】

void MainWindow::on_tu1_triggered()
{
    //注意一点就可以,雕刻中,浮雕(凸雕)是右下角的点减去左上角的点
    //雕刻,凹雕,是左上角的点减去右下角的点。
    //尝试使用多种方式去看雕刻的效果。
    //改变的方式包括:最后加的像素值不同。右上角、左上角点选取不同
    Mat dst(srcImage.size(),CV_8UC3);

    for (int i=1; i<srcImage.rows-1; i++)
    {

        uchar *current = srcImage.ptr<uchar>(i);
        uchar *currentBefore = srcImage.ptr<uchar>(i+1);
        //   uchar *currentNext = srcImage.ptr<uchar>(i+1);

        uchar *dstLine = dst.ptr<uchar>(i);

        for (int j=1; j<srcImage.cols-1; j++)
        {
            for (int k=0; k<3; k++)
            {
                int tmp0 = current[3*j+k]-currentBefore[3*(j-1)+k]+128;//此处与其它不同,浮雕1
                if (tmp0<0)
                    dstLine[3*j+k]=0;
                else if(tmp0>255)
                    dstLine[3*j+k]=255;
                else
                    dstLine[3*j+k]=tmp0;


            }
        }
    }
    dst.copyTo(dstImage);

    /*imshow("srcImage",srcImage);
      imshow("dstImage",dstImage);
      */
    showLabel(dstImage,ui->label2);
}

【标签显示图片代码】

void MainWindow::showLabel(Mat m, QLabel *l)
{
    //   cv::cvtColor(m,m,CV_BGR2RGB);
    img = QImage((const unsigned char*)(m.data),m.cols,m.rows,m.cols*m.channels(), QImage::Format_RGB888);
    //l.clear();
    l->clear();
    //img=  img.scaled(l.width(),l.height());
    img=img.scaled(l->width(),l->height());
    //l.setPixmap(QPixmap::fromImage(img));
    l->setPixmap(QPixmap::fromImage(img));
}

【參考资料】

1.学习OpenCV:滤镜系列(1)—— 雕刻&浮雕

http://blog.csdn.net/yangtrees/article/details/9090607

这是一个专题系列,包括非常多滤镜处理效果。

2.图像处理函数之C语言实现。有真相

http://www.douban.com/group/topic/28961821/

包括非常多的滤镜效果处理。

雕刻效果的实现【OpenCV+QT】

标签:amp   cpp   技术分享   win   from   data   topic   注意   void   

原文地址:http://www.cnblogs.com/brucemengbm/p/6789070.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!