前言
C#描述-计算机视觉OpenCV(1):基础操作
C#描述-计算机视觉OpenCV(2):图像处理
在前文中,描述了如何对像素和图像进行基本的运算与处理,结合图像的原理,我们已经可以做出很多操作了。这里我们先做一个热身,如何将一张胶卷的负片转换为正片。
胶卷作为一种古早的记录图像的工具,有正负两种格式,正片与我们肉眼所见色彩一致。那么负片,也就是我们印象中最常见到的胶片,看起来明暗是相反的,其色彩为被摄体的补色,其中,负片的负的含义,就是RGB码取了余数。
知道了原理,我们就可以很轻松的来写一个扫描负片的方法:
int r = img.Rows;
int c = img.Cols;
Cv2.ImShow("win0", img);
for (int i = 0; i < r; i++)
for (int j = 0; j < c; j++)
{
img.At<Vec3b>(i, j)[0] = (byte)(255-img.At<Vec3b>(i, j)[0]);
img.At<Vec3b>(i, j)[1] = (byte)(255-img.At<Vec3b>(i, j)[1]);
img.At<Vec3b>(i, j)[2]