#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv/cvaux.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>
#include <fstream>
using namespace std;
using namespace cv;
void sharpen2D(Mat &image,Mat &result)
{
// -1
// -1 5 -1
// -1
//构造核
Mat kernel(3,3,CV_32F,Scalar(0));
//对核元素进行赋值
kernel.at<float>(1,1)=5.0;
kernel.at<float>(0,1)=-1.0;
kernel.at<float>(2,1)=-1.0;
kernel.at<float>(1,0)=-1.0;
kernel.at<float>(1,2)=-1.0;
filter2D(image,result,image.depth(),kernel);
}
int main( )
{
// //读入图像
// //原图像
// Mat srcImage=imread("/Users/liyixin/Pictures/tree.jpg");
// //修改尺寸后的图像
// Mat samImage; samImage=srcImage;
//
// //创建窗口
// //namedWindow("FomalSize",CV_WINDOW_NORMAL);
// //namedWindow("Smallsize",CV_WINDOW_NORMAL);
//
// //显示原图
// //imshow("FomalSize",srcImage);
//
// //尺寸调整
// resize(srcImage,samImage,Size(srcImage.cols/8,srcImage.rows/8),0,0,INTER_LINEAR);
//
// //显示尺寸调整后的图
// imshow("Smallsize", samImage);
//
// //保存图像
// //imwrite("/Users/liyixin/Pictures/tree1.jpg", samImage);
//
// //进行滤波操作
// //方框滤波
// Mat out1;
// boxFilter(samImage, out1, -1,Size(3, 3));
// //显示效果图
// imshow("boxFilter" ,out1);
//
// //均值滤波
// Mat out2;
// blur(samImage, out2,Size(3,3));
// //显示效果图
// imshow("blur" ,out2);
//
//
// //高斯滤波
// Mat out3;
// GaussianBlur(samImage, out3, Size(3,3), 0);
// //显示效果图
// imshow("GaussianBlur" ,out3);
//
//
// waitKey(0);
//读入图像
//原图像
Mat srcImage=imread("/Users/liyixin/Pictures/tree.jpg");
//修改尺寸后的图像
Mat samImage; samImage=srcImage;
//尺寸调整
resize(srcImage,samImage,Size(srcImage.cols/8,srcImage.rows/8),0,0,INTER_LINEAR);
Mat rst;
imshow("原图像",samImage);
// Mat kernel(3,3,CV_32F,Scalar(-1));
// // 分配像素置
// // kernel.at<float>(1,1) = 8;
// kernel.at<float>(1,1) = 8.999;
//
// // 对图像和自定义核做卷积
// filter2D(samImage,rst,samImage.depth(),kernel);
sharpen2D(samImage,rst);
imshow("锐化结果",rst);
waitKey(0);
return 0;
}
Xcode上利用opencv: (二)图像锐化
最新推荐文章于 2024-07-30 21:03:00 发布