「OpenCV에 의한 화상 처리 입문」연습 문제 7.1(일부)

11913 단어 이미지 처리OpenCV
「OpenCV에 의한 화상 처리 입문」 의 연습 문제 7.1를 했다.

연습 문제 7.1



1



Q. 그림 7.7에 Sobel 연산자를 적용하면 어떤 이미지를 얻을 수 있습니까? 적용 결과를 그레이 스케일 화상으로서 표시하기 위해서 필요한 처리는 무엇인가.

그림 7.7

Sobel 연산자: 가장자리(윤곽) 감지에 사용되는 연산자.
그레이스케일 이미지: 색감이 없는 밝기 정도만으로 표현한 이미지

그림 7.7의 이미지를 표시하는 프로그램

sub15_1.cpp
//画面表示
void display(cv::Mat image) {
    std::string windowName = "windowName";
    cv::namedWindow(windowName, CV_WINDOW_NORMAL/2);
    cv::imshow(windowName, image);
    cv::waitKey(0);
}

int sub15() {
    // 7×7の画像、1ch
    cv::Mat image = cv::Mat::zeros(8, 8, CV_8UC1);
    int cols = image.cols;
    int rows = image.rows;

    for (int j = 0; j < rows; j++) {
        for (int i = 0; i < cols; i++) {
            if((2<=j && j<=5) && (2 <= i && i <= 5))
            {
                image.at<unsigned char>(j, i) = 255;
            }
            else
            {
                image.at<unsigned char>(j, i) = 0;
            }
        }
    }
    //画面に出力
    display(image);
    return 0;
}

출력 이미지


그림 7.7에 Sobel 오퍼레이터를 적용하는 프로그램

sub15_2.cpp
//画面表示
void display(cv::Mat image) {
    std::string windowName = "windowName";
    cv::namedWindow(windowName, CV_WINDOW_NORMAL/2);
    cv::imshow(windowName, image);
    cv::waitKey(0);
}

int sub15() {

    // 7×7の画像、1ch
    Mat img_src = cv::Mat::zeros(8, 8, CV_8UC1);
    Mat img_tmp;
    Mat img_dst;

    int cols = img_src.cols;
    int rows = img_src.rows;
    for (int j = 0; j < rows; j++) {
        for (int i = 0; i < cols; i++) {

            if((2<=j && j<=5) && (2 <= i && i <= 5))
            {
                img_src.at<unsigned char>(j, i) = 255;
            }
            else
            {
                img_src.at<unsigned char>(j, i) = 0;
            }
        }
    }
    // Sobelオペレータ
    Sobel(img_src, img_tmp, CV_32F, 1, 0, 3);
    convertScaleAbs(img_tmp, img_dst, 1, 0);

    //画面に出力
    display(img_dst);
    return 0;
}

출력 이미지

분열해 버렸다. .
그레이 스케일 이미지의 변환은 패스.

2



Q. 그림 7.7에 선명한 오퍼레이터를 적용하면 어떤 이미지를 얻을 수 있는가?

선명한 연산자: 이미지의 가장자리를 강조하는 연산자. 입력 화상에 소정의 평활화 처리를 실시하고, 그 결과를 원래의 화상으로부터 당기는 것으로 적용된다.

출력 이미지

이번에는 부풀어 오른다.

좋은 웹페이지 즐겨찾기