본문 바로가기

OpenCV

ch07 sharpen

#python code

import cv2
import numpy as np

def unsharp_mask():
    src = cv2.imread('D:\\projects\\SampleCode\\006939-master\\ch07\\sharpen\\rose.bmp', cv2.IMREAD_GRAYSCALE)

    if src is None:
        print("Image load failed!")
        return

    cv2.imshow('src', src)

    for sigma in range(1, 6):
        blurred = cv2.GaussianBlur(src, (0, 0), sigma)

        alpha = 1.0
        dst = cv2.addWeighted(src, 1 + alpha, blurred, -alpha, 0)

        desc = f'sigma: {sigma}'
        cv2.putText(dst, desc, (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (255,), 1, cv2.LINE_AA)

        cv2.imshow('dst', dst)
        cv2.waitKey()

    cv2.destroyAllWindows()

if __name__ == '__main__':
    unsharp_mask()

// C++ code


#include "opencv2/opencv.hpp"
#include <iostream>

using namespace cv;
using namespace std;

void unsharp_mask();

int main(void)
{
	unsharp_mask();

	return 0;
}

void unsharp_mask()
{
	Mat src = imread("rose.bmp", IMREAD_GRAYSCALE);

	if (src.empty()) {
		cerr << "Image load failed!" << endl;
		return;
	}

	imshow("src", src);

	for (int sigma = 1; sigma <= 5; sigma++) {
		Mat blurred;
		GaussianBlur(src, blurred, Size(), sigma);

		float alpha = 1.f;
		Mat dst = (1 + alpha) * src - alpha * blurred;

		String desc = format("sigma: %d", sigma);
		putText(dst, desc, Point(10, 30), FONT_HERSHEY_SIMPLEX, 1.0, 
				Scalar(255), 1, LINE_AA);

		imshow("dst", dst);
		waitKey();
	}

	destroyAllWindows();
}

C++ Code 출처 : OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝 - 황선규 저


 

'OpenCV' 카테고리의 다른 글

ch08 perspective  (0) 2024.05.20
ch08 affine  (0) 2024.05.20
ch07 noise  (0) 2024.05.20
ch07 filter  (0) 2024.05.20
ch07 blurring  (0) 2024.05.20