1、图像处理
1.1 模型与转换
1.1.1RGB:三色模型。
像素:从0到1表示;划分标准,如8UC3(8位无符号整数,3通道,2进制下2^8=256),
则像素划分成0-255。
RGBA模型,多了一个维度A,表示透明度。
1.1.2YUV模型
YUV模型用于电视信号系统较多。Y亮度,U红色分类与亮度Y的差值,V蓝色分量与像素Y的差值
亮度:由黑到白。
黑白电视只需要Y通道,而彩电,就取三通道信号。
1.1.3HSV模型
1.1.4Lab模型
1.1.5GRAY模型
1.1.6不同模型之间的转化:两个函数
第一个cvtColor()表示颜色模型的转化
第二个convertTo表示数据类型的转换
1.2多通道的合并与分离
1.2.1split()


char d[] = {1,2,3,4,5,6,7,8,9,10,11,12};Mat m(2, 2, CV_8UC3, d);Mat channels[3];split(m, channels);/*channels[0] =[ 1, 4;7, 10]channels[1] =[ 2, 5;8, 11]channels[2] =[ 3, 6;9, 12]*/
1.2.2merge()


Mat m1 = (Mat_<uchar>(2,2) << 1,4,7,10);Mat m2 = (Mat_<uchar>(2,2) << 2,5,8,11);Mat m3 = (Mat_<uchar>(2,2) << 3,6,9,12);Mat channels[3] = {m1, m2, m3};Mat m;merge(channels, 3, m);/*m =[ 1, 2, 3, 4, 5, 6;7, 8, 9, 10, 11, 12]m.channels() = 3*/
操作一下:
int main(){Mat img,output;img = imread("D:/OpenCV/ycy2.jpg");if (img.empty()){cout << "error!";}Mat channels[3];split(img, channels);imshow("1", channels[1]);imshow("2", channels[2]);imshow("3", channels[0]);merge(channels, 3,output);imshow("ycy", output);waitKey(0);return 0;}
1.3图像操作处理
1.3.1 寻找最大最小值

通过指针/引用 返回最大最小值以及位置
1.3.2 均值和方差
1.3.3 两图像之间的比较操作
max:两图像比较,取大
min
1.3.4 逻辑运算
1.3.5 图像二值化
函数1:threshold()
type:
THRESH_BINARY
THRESH_BINARY_INV
THRESH_TRUNC
THRESH_TOZERO
THRESH_TOZERO_INV
THRESH_OSTU
THRESH_TRIANGLE
其中,
THRESH_OSTU
THRESH_TRIANGLE
是获取阈值的方法,而非阈值比较方法的标志,它俩可以和前面的五种方法混合使用,如“THRESH_BINARY|THRESH_OSTU”
这种方法是全局阈值,对于阴影之中的黑白无法有效的识别出来。据此,还有另一个函数可供使用:
adaptiveThreshold()
输入图像只能说U8C1 Mat格式。

adaptiveMethod分为ADAPTIVE_THRESH_MEAN:
1.3.6 图像连接
1.3.7 图像尺寸变换
resize()
dsize和fx fy可以同时调整输出图像的参数,当两个参数不一致时,dsize优先级更高。
1.3.8 翻转变换

flipcode
1.3.9 旋转与仿射
旋转:
Mat getRotationMatrix()
获得旋转矩阵,此函数返回一个3*3的旋转矩阵。
仿射:warpAffine()
仿射,即放缩+旋转
1.3.10 透视变换
1.4在图像上绘制图形
2.页面交互
2.1进度条显示
函数:
value 创建后,滑块位置由此变量定义。
count滑动条的最大取值






