#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 |