Python Как обрезать изображения?
Дополню ответ Aleksey Solovyev.
1. Переводим в чб.
2. На бинарном изображении (вместо cv2.Canny необходимо применить cv2.threshold, так как цвет рамки - белый то подобрать порог будет нетрудно) необходимо найти внешний контур (cv2.findContours с параметром RETR_EXTERNAL) и затем останется сохранить часть изображения, которая лежит внутри контура.#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <algorithm>

int main(int argc, char *argv[])
{
	cv::Mat img,gr,th;
	img = cv::imread("1.jpg");
	cv::cvtColor(img, gr, cv::COLOR_BGR2GRAY);
	
	cv::threshold(gr, th, 240.0, 255, cv::THRESH_BINARY);

	std::vector<std::vector<cv::Point> > contours;
	cv::findContours(th, contours, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_NONE);

	auto max_vector_comp = [](std::vector<cv::Point> &lhs,
		std::vector<cv::Point> &rhs)
	{
		return lhs.size() < rhs.size();
	};
	//поиск самого длинного контура
	auto maxVector = std::max_element(contours.begin(), contours.end(),
		max_vector_comp);
	//находим описывающий прямоугольник
	cv::Rect roi = cv::boundingRect(*maxVector);

	cv::Mat croppedImg;
	croppedImg = img(roi);
	cv::imshow("inImg", img);
	cv::imshow("croppedImg", croppedImg);
	cv::waitKey();
	return 0;
}
Opencv в помощь. 
Сканирующее окно работает с левого верхнего пикселя.
Изображение это двумерная матица размером x*y.
Ищем первую строку с пикселем белого цвета.
Отрезаем строки сверху.
Теперь делаем тоже самое, но только в обратную сторону, и запускаем сканирующее окно с конца.
Боковые серые стенки обрезаем по столбцам.
Не знаю на сколько эффективно, но это первое решение которое пришло в голову.