OpenCV——非线性滤波器
来源:互联网 发布:微信好友数据分析软件 编辑:程序博客网 时间:2024/05/18 01:40
参考:
PS 图像特效,非线性滤波器
// define head function#ifndef PS_ALGORITHM_H_INCLUDED#define PS_ALGORITHM_H_INCLUDED#include <iostream>#include <string>#include "cv.h"#include "highgui.h"#include "cxmat.hpp"#include "cxcore.hpp"using namespace std;using namespace cv;void Show_Image(Mat&, const string &);#endif // PS_ALGORITHM_H_INCLUDED/*This program will generate "Paint" effect.*/#include "PS_Algorithm.h"#include <time.h>using namespace std;using namespace cv;int main(void){ string Img_name("4.jpg"); Mat Image_in; Image_in=imread(Img_name); // Show_Image(Image_in, Img_name); Mat Image_out(Image_in.size(), CV_32FC3); Image_in.convertTo(Image_out, CV_32FC3); Mat r(Image_in.size(), CV_32FC1); Mat g(Image_in.size(), CV_32FC1); Mat b(Image_in.size(), CV_32FC1); Mat rgb[]={b,g,r}; split(Image_out, rgb); int P_size=3; Mat sub_mat; double min_val; for (int i=P_size; i<Image_in.rows-P_size-1; i++) { for (int j=P_size; j<Image_in.cols-1-P_size; j++) { for(int k=0; k<3; k++) { sub_mat=rgb[k].operator()(Range(i-P_size,i+P_size), Range(j-P_size,j+P_size)); cv::minMaxLoc(sub_mat, &min_val); Image_out.at<Vec3f>(i,j)[k]=min_val; } /* sub_mat=b.operator()(Range(i-P_size,i+P_size), Range(j-P_size,j+P_size)); cv::minMaxLoc(sub_mat, min_val); Image_out.at<Vec3f>(i,j)[0]=*min_val; sub_mat=g.operator()(Range(i-P_size,i+P_size), Range(j-P_size,j+P_size)); cv::minMaxLoc(sub_mat, min_val); Image_out.at<Vec3f>(i,j)[1]=*min_val; sub_mat=r.operator()(Range(i-P_size,i+P_size), Range(j-P_size,j+P_size)); cv::minMaxLoc(sub_mat, min_val); Image_out.at<Vec3f>(i,j)[2]=*min_val; */ } } Image_out=Image_out/255.0; Show_Image(Image_out, "out"); imwrite("out.jpg", Image_out*255); waitKey(); cout<<"All is well."<<endl;}// define the show image#include "PS_Algorithm.h"#include <iostream>#include <string>using namespace std;using namespace cv;void Show_Image(Mat& Image, const string& str){ namedWindow(str.c_str(),CV_WINDOW_AUTOSIZE); imshow(str.c_str(), Image);}
原图
效果图
0 0
- OpenCV——非线性滤波器
- Opencv中的非线性滤波器概念介绍——中值滤波、双边滤波
- Kalman滤波器——opencv
- opencv学习——常见滤波器形状
- opencv学习笔记(十八)——图像非线性滤波
- opencv中常用的非线性滤波器--中值滤波medianBlur() 和 双边滤波bilateralFilter()
- PS 图像特效-非线性滤波器
- Opencv学习笔记——自建滤波器cvFilter2D
- OpenCV学习笔记——图像处理之滤波器ImgProc
- 云中双边滤波器——基于opencv图像结构
- OpenCV滤波器
- opencv滤波器
- 【拜小白opencv】31-平滑处理4非线性滤波之——中值滤波
- 【拜小白opencv】32-平滑处理5非线性滤波之——双边滤波
- opencv 非线性滤波
- KCF(核化相关滤波)跟踪公式推导笔记(2)——非线性滤波器的解、快速检测及快速核相关
- 有源滤波器——Salley滤波器
- 非线性数据结构——图
- 谈谈新科技媒体
- 如何使用DirectDraw直接显示YUV视频数据
- UIImage的几种应用
- 把sn码转换为二维码
- ZOJ 3820Building Fire Stations 树的最长链性质(拓展)
- OpenCV——非线性滤波器
- SDL 2.0窗口创建的理解
- 第十周项目一——程序填充与阅读(1)
- 第十周项目一(1的拓展)
- HDU44979 GCD and LCM (素因子分解+计数)
- 图像拼接算法及实现
- crontab 定时执行python脚本
- 猿题库高中同步微博运营策划
- Web前端开发人员实用Chrome插件收集