您当前的位置: 首页 >  opencv

txwtech

暂无认证

  • 1浏览

    0关注

    813博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

OpenCV15阈值操作

txwtech 发布时间:2021-04-08 22:12:01 ,浏览量:1

/* prepared by txwtech 阈值操作只能是灰度图像 图像阈值 阈值类型 阈值 是什么?简单点说是把图像分割的标尺,这个标尺是根据什么产生的,阈值产生算法?阈值类型。(Binary segmentation)

阈值类型一阈值二值化(threshold binary) 阈值类型一阈值反二值化(threshold binary Inverted) 阈值类型一截断 (truncate) 阈值类型一阈值取零 (threshold to zero)

THRESH_TRIANGLE三角码取阈值是根据直方图计算的 */

 

/*
prepared by txwtech
阈值操作只能是灰度图像
图像阈值
阈值类型
阈值 是什么?简单点说是把图像分割的标尺,这个标尺是根据什么产生的,阈值产生算法?阈值类型。(Binary segmentation)

阈值类型一阈值二值化(threshold binary)
阈值类型一阈值反二值化(threshold binary Inverted)
阈值类型一截断 (truncate)
阈值类型一阈值取零 (threshold to zero)
THRESH_TRIANGLE三角码取阈值是根据直方图计算的
*/

#include 
#include 
using namespace cv;
using namespace std;

int threshold_min = 126;
int threshold_max = 255;
const char* out_title = "binary_img";
void Threshold_fun(int,void*);
Mat src_gray;
Mat src;
Mat dst1;
int type_min = 2;
int type_max = 4;

int main(int argc, char *argv[])
{
	
	
	src = imread("E:\\pictures\\dog1.jpg");
	if (!src.data)
	{
		printf("failed to load image");
		return -1;
	}
	namedWindow("原图",CV_WINDOW_AUTOSIZE);
	namedWindow(out_title,CV_WINDOW_AUTOSIZE);
	imshow("原图",src);

	createTrackbar("threshold_value:", out_title,&threshold_min,threshold_max,Threshold_fun);
	createTrackbar("type_value:", out_title, &type_min, type_max, Threshold_fun);
	Threshold_fun(0,0);

	waitKey(0);
	return 0;
}
void Threshold_fun(int,void*)
{
	cvtColor(src,src_gray,CV_BGR2GRAY);
	//阈值
	//threshold(src_gray,dst1,threshold_min,threshold_max,THRESH_BINARY);

	//自动计算阈值THRESH_OTSU,一个滑动条就不起作用了
	//threshold(src_gray, dst1, 0, 255, THRESH_OTSU|type_min);
	//自动计算阈值THRESH_TRIANGLE三角码取阈值是根据直方图计算的
	threshold(src_gray, dst1, 0, 255, THRESH_TRIANGLE | type_min);

	imshow(out_title,dst1);
}

 

关注
打赏
1665060526
查看更多评论
立即登录/注册

微信扫码登录

0.0389s