LoginSignup
0
0

More than 3 years have passed since last update.

『OpenCVによる画像処理入門』練習問題7.1(一部)

Posted at

『OpenCVによる画像処理入門』の練習問題7.1をやった。

練習問題7.1

1

Q. 図7.7にSobelオペレータを適用すると、どのような画像が得られるか。適用結果をグレースケール画像として表示するために必要な処理は何か。

図7.7
20210207_160946.jpg
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;
}

出力画像
image.png

図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;
}

出力画像
image.png
分裂してしまった。。
グレースケール画像の変換はパス。

2

Q. 図7.7に鮮鋭化オペレータを適用すると、どのような画像が得られるか。

鮮鋭化オペレータ:画像のエッジを強調するオペレータ。入力画像に対して、ある平滑化処理を施し、その結果を元の画像から引くことで適用される。

出力画像
image.png
今度は膨らんだ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0