/// <summary> /// Submatrix operations /// </summary> private void SubMat() { Mat src = Cv2.ImRead(FilePath.Image.Lenna); // Assign small image to mat Mat small = new Mat(); Cv2.Resize(src, small, new Size(100, 100)); src[10, 110, 10, 110] = small; src[370, 470, 400, 500] = small.T(); // ↑ This is same as the following: //small.T().CopyTo(src[370, 470, 400, 500]); // Get partial mat (similar to cvSetImageROI) Mat part = src[200, 400, 200, 360]; // Invert partial pixel values Cv2.BitwiseNot(part, part); // Fill the region (50..100, 100..150) with color (128, 0, 0) part = src.SubMat(50, 100, 400, 450); part.SetTo(128); using (new Window("SubMat", src)) { Cv2.WaitKey(); } }