/*
* 功能: 大津二值法
* 参数: img为图像矩阵
* 返回: 二值化的阈值
*/
#include <string.h>
#define HEIGHT 1080
#define WIDTH 1920
unsigned char otsuBin(unsigned char img[][WIDTH]) {
long greyHisto[256];
unsigned char greyMin = 0, greyMax = 255;
memset(greyHisto, 0, 256 * sizeof(long));
// 获取灰度直方图
for (int row = 0; row < WIDTH; row++)
for (int col = 0; col < HEIGHT; col++) {
int greyVal = img[row][col];
greyHisto[greyVal]++;
}
// 获取灰度范围
for (int i = 0; i < 256; i++) {
if (greyHisto[i] > 0) {
greyMin = i;
break;
}
}
for (int i = 255; i >= 0; i--) {
if (greyHisto[i] > 0) {
greyMax = i;
break;
}
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余2页未读,立即下载