opencv实现图片动画效果

#include "qtest1105.h"
#include <QtWidgets/QApplication>
#include <opencv2\core\utility.hpp>
#include <opencv2\imgproc.hpp>
#include <opencv2\highgui.hpp>
#include<string>
#include <iostream>
#include <limits>
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);
void lomoCallback(int state, void* userData);
void cartoonCallback(int state, void* userData);


int main()
{
Mat imgMedian;
medianBlur(img, imgMedian, 7);
imshow("medianBlur", imgMedian);//中值滤波去除噪声
Mat imgCanny;
Canny(imgMedian, imgCanny, 20, 150);
imshow("imgCanny", imgCanny);//用Canny检测边缘
Mat kernel = getStructuringElement(MORPH_RECT, Size(5, 5));
dilate(imgCanny, imgCanny, kernel);
imshow("边缘膨胀", imgCanny);//用于边缘膨胀
imgCanny = imgCanny / 255;
imgCanny = 1 - imgCanny;//边缘值缩放到1,并将值反转
Mat imgCannyf;
imgCanny.convertTo(imgCannyf, CV_32FC3);
blur(imgCannyf, imgCannyf, Size(5, 5));//模糊边缘实现平滑效果
Mat imgBF;
bilateralFilter(img, imgBF, 9, 150.0, 150.0);//色彩均匀化
Mat result = imgBF / 25;
result = result * 25;
imshow("result01", result);
Mat imgCanny3c;
Mat cannyChannels[] = { imgCannyf,imgCannyf,imgCannyf };
merge(cannyChannels, 3, imgCanny3c);
Mat resultf;
result.convertTo(resultf, CV_32FC3);
imshow("resultf", resultf);
multiply(resultf, imgCanny3c, resultf);
imshow("result02", result);
resultf.convertTo(result, CV_8UC3);
imshow("卡通效果", result);


//createButton("ss", showHistoCallback, NULL, QT_PUSH_BUTTON, 0);
//createButton("直方图均衡化",equlizeCallback,NULL,QT_PUSH_BUTTON,0);



waitKey(0);
return 0;
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值