图像的灰度化和二值化

C++

#include <cstdio>
#include <opencv2/opencv.hpp>


// 图片灰度化与二值化

int main(int argc, char ** argv)
{
    (void) argc;
    (void) argv;
    // 读取图片
    cv::Mat pic_src = cv::imread("/home/ros2u/map.jpg"); //请自行修改图片路径

    // 灰度化
    // 声明一个用于存放灰度图像的变量
    cv::Mat pic_gray;
    // 转换为灰度图像
    cv::cvtColor(pic_src, pic_gray, cv::COLOR_BGR2GRAY);
    cv::imwrite("/home/ros2u/map_gray.jpg", pic_gray);

    // 声明一个用于存放二值化图像的变量
    cv::Mat pic;
    // 应用图像二值化
    cv::threshold(pic_gray, pic, 127, 255, cv::THRESH_BINARY);
    cv::imwrite("/home/ros2u/map_binary.jpg", pic);


    // 显示图片
    cv::imshow("my_pic", pic);
    // 使显示窗口一直处于打开状态
    cv::waitKey(0);

    return 0;
}

Python实现

import cv2

def main(args=None):

    # 读取图片
    pic_src = cv2.imread("/home/ros2u/map.jpg")  # 请自行修改图片路径

    # 灰度化
    pic_gray = cv2.cvtColor(pic_src, cv2.COLOR_BGR2GRAY)
    cv2.imwrite("/home/ros2u/map_gray_py.jpg", pic_gray)

    # # 应用图像二值化
    _,pic = cv2.threshold(pic_gray, 127, 255, cv2.THRESH_BINARY)
    cv2.imwrite("/home/ros2u/map_binary_py.jpg", pic)

    # 显示图片
    cv2.imshow("my_pic", pic)

    # 使显示窗口一直处于打开状态
    cv2.waitKey(0)


if __name__ == '__main__':
    main()

results matching ""

    No results matching ""