개발/OpenCV

가우시안 노이즈(Gaussian Noise)

njsung 2018. 4. 9. 23:05
반응형
#include <opencv\highgui.h>
#include <opencv2\opencv.hpp>

using namespace cv;

int main() {
	
	Mat inputImg;

	inputImg = imread("cat.png", CV_LOAD_IMAGE_COLOR);
	resize(inputImg, inputImg, Size(), 0.3, 0.3, CV_INTER_AREA);

	Mat noise_image(inputImg.size(), CV_16SC3);
	double average = 0.0;
	double std = 30.0;
	randn(noise_image, Scalar::all(average), Scalar::all(std));

	Mat temp_image;
	inputImg.convertTo(temp_image, CV_16SC3);
	addWeighted(temp_image, 1.0, noise_image, 1.0, 0.0, temp_image);
	temp_image.convertTo(temp_image, inputImg.type());


	namedWindow("Original", CV_WINDOW_AUTOSIZE);
	namedWindow("GaussianNoise", CV_WINDOW_AUTOSIZE);

	imshow("Original", inputImg);
	imshow("GaussianNoise", temp_image);

	waitKey(0);


	return 0;
}


가우시안 노이즈를 원본이미지에 추가하는 코드입니다.


결과는 다음과 같습니다.



좌측이 원본 이미지, 우측이 노이즈를 추가한 이미지입니다.



반응형