C/C++ OpenCV图像的阈值操作

来源:互联网 发布:企业网站源码带手机版 编辑:程序博客网 时间:2024/05/22 11:54

固定阈值操作:Threshold()

double threshold(

inputArray src,

outPutArray dst,

double thresh,

double maxval,

int type

)

第一个参数:输入图像

第二个参数:输出图像

第三个参数:阈值的具体值

第四个参数:阈值的最大值

第五个参数:阈值类型


五种阈值方式

THRESH_BINARY 二进制阈值

THRESH_BINARY_INV 反二进制阈值

THRESH_TRUNC 截断阈值

THRESH_TOZERO 反阈值化为0

THRESH_TOZERO_INV 阈值化为0


二进制阈值:低于阈值部分取阈值,高于阈值取0
反二进制阈值:相反
截断阈值:高于阈值的被截断
阈值化为0:低压阈值的为0,高于的不变


cvtColor(int,out,COLOR_RGB2GRAY)


下面是代码:

#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/highgui/highgui.hpp>using namespace cv;#define WINDOW_NAME "窗口"int g_nThresholdValue = 100;int g_nThresholdType = 3;Mat g_srcImage, g_grayImage, g_dstImage;void on_Threshold(int, void*);int main(){g_srcImage = imread("1.jpg");if (!g_srcImage.data){printf("读取图片失败!\n");return -1;}cvtColor(g_srcImage, g_grayImage, COLOR_RGB2GRAY);namedWindow(WINDOW_NAME);namedWindow("原图");imshow("原图", g_grayImage);createTrackbar("模式", WINDOW_NAME, &g_nThresholdType, 4, on_Threshold);createTrackbar("参数值", WINDOW_NAME, &g_nThresholdValue, 255, on_Threshold);on_Threshold(0, 0);waitKey(0);return 0;}void on_Threshold(int, void*){threshold(g_grayImage, g_dstImage, g_nThresholdValue, 255, g_nThresholdType);imshow(WINDOW_NAME,g_dstImage);}

运行结果如下:




1 0
原创粉丝点击