Opencv之“PS”--双边滤波+掩膜处理(提高对比度)=PS

//#include “stdafx.h”

//本节讲述 画线、点、矩形、圆形和椭圆.多边形,文本。 等函数;
#include <opencv2/opencv.hpp>
#include

using namespace std;
using namespace cv;

//Mat bgImage;
//const char *drawdemo_win = “draw shapes and text demo”;
Mat addSaltNoise(const Mat srcImage, int n);

int main(int argc, char**argv)
{
Mat src, dst;

src = imread("C:/Users/Rubison.DELL/Desktop\\杂物/壁纸/小白2.jpg");  //存放自己图像的路径 
if (!src.data)
{
	printf("could not load image...\r\n");
	return -1;
}
char input_title[] = "原图";
char output_title[] = "模糊处理";
namedWindow(input_title,CV_WINDOW_AUTOSIZE);
namedWindow(output_title, CV_WINDOW_AUTOSIZE);
imshow(input_title,src);

//blur(src,dst,Size(3,3),Point(-1,-1),4);
//imshow(output_title,dst);

//Mat dstImage = addSaltNoise(src, 3000);                //创建一个椒盐噪音图
//imshow("添加椒盐噪声的图像", dstImage);
存储图像
//imwrite("C:/Users/Rubison.DELL/Desktop\\杂物/壁纸/椒盐噪音图.jpg", dstImage);


//Mat Gaussblur;
//GaussianBlur(src, Gaussblur, Size(3, 3), 11, 11);
//imshow("高斯模糊", Gaussblur);

//Mat medianblur;
//medianBlur(src, medianblur,7);    //注意 必须要是大于1的奇数奇数奇数!!!!
//imshow("中值模糊", medianblur);

Mat bilatera;                //双边滤波
bilateralFilter(src, bilatera, 15,150, 7); //15-
imshow("双边滤波", bilatera);

Mat psimage;
Mat kernal = (Mat_<int>(3,3)<<0,-1,0,-1,5,-1,0,-1,0);
filter2D(bilatera, psimage, -1, kernal, Point(-1, -1), 0);
imshow("PS的图",psimage);

waitKey(0);
destroyAllWindows();
return 0;

}

Mat addSaltNoise(const Mat srcImage, int n) //椒盐噪音回调函数
{
Mat dstImage = srcImage.clone();
for (int k = 0; k < n; k++)
{
//随机取值行列
int i = rand() % dstImage.rows;
int j = rand() % dstImage.cols;
//图像通道判定
if (dstImage.channels() == 1)
{
dstImage.at(i, j) = 255; //盐噪声
}
else
{
dstImage.at(i, j)[0] = 255;
dstImage.at(i, j)[1] = 255;
dstImage.at(i, j)[2] = 255;
}
}
for (int k = 0; k < n; k++)
{
//随机取值行列
int i = rand() % dstImage.rows;
int j = rand() % dstImage.cols;
//图像通道判定
if (dstImage.channels() == 1)
{
dstImage.at(i, j) = 0; //椒噪声
}
else
{
dstImage.at(i, j)[0] = 0;
dstImage.at(i, j)[1] = 0;
dstImage.at(i, j)[2] = 0;
}
}
return dstImage;
}

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w5875895

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值