본문 바로가기

OpenCV

ch07 blurring

# python code

import cv2
import numpy as np

def blurring_mean():
    src = cv2.imread("D:\\projects\\SampleCode\\006939-master\\ch07\\blurring\\rose.bmp", cv2.IMREAD_GRAYSCALE)

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

    cv2.imshow("src", src)

    for ksize in range(3, 8, 2):
        dst = cv2.blur(src, (ksize, ksize))

        desc = f"Mean: {ksize}x{ksize}"
        cv2.putText(dst, desc, (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1.0,
                    (255), 1, cv2.LINE_AA)

        cv2.imshow("dst", dst)
        cv2.waitKey(0)

    cv2.destroyAllWindows()

def blurring_gaussian():
    src = cv2.imread("D:\\projects\\SampleCode\\006939-master\\ch07\\blurring\\rose.bmp", cv2.IMREAD_GRAYSCALE)

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

    cv2.imshow("src", src)

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

        desc = f"Gaussian: 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(0)

    cv2.destroyAllWindows()

def main():
    blurring_mean()
    blurring_gaussian()

if __name__ == "__main__":
    main()

// C++ code

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

using namespace cv;
using namespace std;

void blurring_mean();
void blurring_gaussian();

int main(void)
{
	blurring_mean();
	blurring_gaussian();

	return 0;
}

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

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

	imshow("src", src);

	Mat dst;
	for (int ksize = 3; ksize <= 7; ksize += 2) {
		blur(src, dst, Size(ksize, ksize));

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

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

	destroyAllWindows();
}

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

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

	imshow("src", src);

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

		String desc = format("Gaussian: 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' 카테고리의 다른 글

ch07 noise  (0) 2024.05.20
ch07 filter  (0) 2024.05.20
ch06 logical  (0) 2024.05.20
ch06 arithmetic  (0) 2024.05.20
ch05 contrast  (0) 2024.05.19