二值图像

本文介绍二值图像的基本概念及五种不同的阈值处理方法,包括二值化与阈值化的实现,并通过OpenCV示例代码展示如何进行图像处理。

二 值 图 像 二值图像

1.视频教程:
B站、网易云课堂、腾讯课堂
2.代码地址:
Gitee
Github
3.存储地址:
Google云
百度云:
提取码:

1.灰度与二值图像

灰度图像:单通道,取值范围0~255

二值图像:单通道,取值0(黑色)与255(白色)

2.5种二值和阈值化方式

输入:原图和阈值T

5种方式:

  1. 大于T 255 else 0 :二值化
  2. 小于T 255 else 0 :二值化
  3. 小于T保持原值else T :阈值化
  4. 小于T 0else原值 :阈值化
  5. 大于T0 else 原值 :阈值化
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv) {

	Mat src = imread("E:/cats.jpg", IMREAD_UNCHANGED);

	if (src.empty()) {
		printf("image is empty!!!");
		return -1;
	}
	namedWindow("image", WINDOW_FREERATIO);
	imshow("image", src);
	Mat gray, binary;
	cvtColor(src, gray, COLOR_BGR2GRAY);
	imshow("gray", gray);
	threshold(gray, binary, 127, 255, THRESH_BINARY);
	imshow("binary", binary);
	waitKey(0);
	destroyAllWindows();
	return 0;
}

在这里插入图片描述

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

using namespace cv;
using namespace std;

int main(int argc, char** argv) {

	Mat src = imread("E:/cats.jpg", IMREAD_UNCHANGED);

	if (src.empty()) {
		printf("image is empty!!!");
		return -1;
	}
	namedWindow("image", WINDOW_FREERATIO);
	imshow("image", src);
	Mat gray, binary;
	cvtColor(src, gray, COLOR_BGR2GRAY);
	imshow("gray", gray);
	// 1
	threshold(gray, binary, 127, 255, THRESH_BINARY);
	imshow("THRESH_BINARY", binary);
	// 2
	threshold(gray, binary, 127, 255, THRESH_BINARY_INV);
	imshow("THRESH_BINARY_INV", binary);
	// 3
	threshold(gray, binary, 127, 255, THRESH_TRUNC);
	imshow("THRESH_TRUNC", binary);
	// 4
	threshold(gray, binary, 127, 255, THRESH_TOZERO);
	imshow("THRESH_TOZERO", binary);
	// 5
	threshold(gray, binary, 127, 255, THRESH_TOZERO_INV);
	imshow("THRESH_TOZERO_INV", binary);
	waitKey(0);
	destroyAllWindows();
	return 0;
}





在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值