본문 바로가기
Open CV

[OPENCV-C++ ] 손실된 데이터 복원하기(보간법(Interpolation) 활용)

by TYB 2023. 11. 26.
반응형

보간법: InterPolation / 외부 보간법: OuterPolation

알고 있는 두 점 사이의 모르는 값을 추측할 때 사용하는 방법으로 해당 점끼리는 선형적인 관계가 있을 거라고 생각하고 접근하는 방법

 

 

 

255,0으로 손실된 데이터(점 6개) 복원하기

 

#pragma once

#include "ISP.h"

int main()
{
	std::string fileName = "../thirdparty/opencv_480/sources/samples/data/lena_gray.jpg";
	cv::Mat src_gray_original = cv::imread(fileName, cv::ImreadModes::IMREAD_GRAYSCALE);
	cv::Mat src_gray = cv::imread(fileName, cv::ImreadModes::IMREAD_GRAYSCALE);
	int index = 0;
	for (size_t row = 0; row < src_gray.rows; row++)//y
	{
		for (size_t col = 0; col < src_gray.cols; col++)//x
		{
			index = col + src_gray.cols * row;
			if ((src_gray.data[index] < 5) || (src_gray.data[index] > 250)) {//손실된 픽셀일때
				src_gray.data[index] =
					(src_gray.data[index-513]+ src_gray.data[index-512]+ src_gray.data[index-511]+
					src_gray.data[index-1]+ src_gray.data[index+1]+ src_gray.data[index+511]+
						src_gray.data[index+512]+ src_gray.data[index+513]) / 8;
			}
		}
	}
	
	return 1;
}

 

 

 

반응형

'Open CV' 카테고리의 다른 글

[OPENCV-C++ ] sigma를 활용한 gaussian filter  (1) 2023.11.26
[OPENCV-C++ ] sobel filter(HPF)  (2) 2023.11.26
[OPENCV-C++ ] blurring  (0) 2023.11.26
[OPENCV-C++ ] gamma correction  (2) 2023.11.25
[OPENCV-C++ ] histogram equalization  (0) 2023.11.07