OpencvSharp快速入门 | 1.基础图像操作
OpencvSharp基础图像操作
一、读取图像
- 基础函数:
Cv2.ImRead(string path, ImreadModes flags)
- 功能描述: 从文件中读取图像。
- 参数类型:
path
(string): 图像文件的路径。flags
(ImreadModes): 读取图像的标志,例如ImreadModes.Color
表示以彩色模式读取图像。
- 返回对象: Mat (图像矩阵)
- 操作实例:
Mat image = Cv2.ImRead("path_to_image.jpg", ImreadModes.Color); Cv2.ImShow("Loaded Image", image); Cv2.WaitKey(0);
二、保存图像
- 基础函数:
Cv2.ImWrite(string filename, Mat img, params int[] parameters)
- 功能描述: 将图像保存到文件中。
- 参数类型:
filename
(string): 保存图像的文件路径。img
(Mat): 要保存的图像。parameters
(int[]): 保存参数,可选。
- 返回对象: 无
- 操作实例:
Cv2.ImWrite("saved_image.jpg", image);
三、显示图像
- 基础函数:
Cv2.ImShow(string winname, Mat mat)
- 功能描述: 在窗口中显示图像。
- 参数类型:
winname
(string): 窗口的名称。mat
(Mat): 要显示的图像。
- 返回对象: 无
- 操作实例:
Cv2.ImShow("Displayed Image", image); Cv2.WaitKey(0);
四、获取图像属性
- 基础函数: 无
- 功能描述: 可以通过Mat对象的属性来获取图像的属性,如宽度、高度、通道数等。
- 参数类型: 无
- 返回对象: 无
- 操作实例:
int width = image.Width; int height = image.Height; int channels = image.Channels();
五、创建图像
- 基础函数:
Mat ones = Mat.Ones(Size size, MatType type)
- 功能描述: 创建指定尺寸和类型的新图像。
- 参数类型:
size
(Size): 图像的尺寸。type
(MatType): 图像的类型。
- 返回对象: Mat (新创建的图像)
- 操作实例:
Mat newImage = Mat.Ones(new Size(100, 100), MatType.CV_8UC3);
六、裁剪图像
- 基础函数:
Mat cropped = new Mat(source, new OpenCvSharp.Rect(x, y, width, height))
- 功能描述: 从原图像中裁剪出指定区域的图像。
- 参数类型:
source
(Mat): 原图像。x, y
(int): 裁剪区域的左上角坐标。width, height
(int): 裁剪区域的宽度和高度。
- 返回对象: Mat (裁剪得到的图像)
- 操作实例:
Mat croppedImage = new Mat(image, new OpenCvSharp.Rect(100, 100, 200, 200));
七、拼接图像
- 基础函数:
Cv2.HConcat(IEnumerable<Mat> src, Mat dst)
- 功能描述: 将多个图像水平拼接成一张图像。
- 参数类型:
src
(IEnumerable): 要拼接的源图像列表。 dst
(Mat): 拼接后的目标图像。
- 返回对象: 无
- 操作实例:
Mat[] imagesToConcat = { image1, image2, image3 }; Mat concatenatedImage = new Mat(); Cv2.HConcat(imagesToConcat, concatenatedImage);
八、通道拆分
- 基础函数:
Cv2.Split(Mat src, out Mat[] mv)
- 功能描述: 将多通道图像拆分成单通道图像。
- 参数类型:
src
(Mat): 原图像。mv
(out Mat[]): 拆分后的单通道图像数组。
- 返回对象: 无
- 操作实例:
Mat[] channels; Cv2.Split(image, out channels);
九、通道合并
- 基础函数:
Cv2.Merge(IEnumerable<Mat> mv, Mat dst)
- 功能描述: 将多个单通道图像合并成多通道图像。
- 参数类型:
mv
(IEnumerable): 要合并的单通道图像列表。 dst
(Mat): 合并后的目标多通道图像。
- 返回对象: 无
- 操作实例:
Mat[] channelsToMerge = { channel1, channel2, channel3 }; Mat mergedImage = new Mat(); Cv2.Merge(channelsToMerge, mergedImage);
这些基础操作可以帮助您开始使用OpencvSharp库进行图像处理。