首页 > 代码库 > 显示图像
显示图像
底层操作
为矩阵定义了一系列方便的操作符。我们可以将一个已经存在的灰度图像 img 变成全黑色:
img = Scalar(0);
选择感兴趣区域:
Rect r(10, 10, 100, 100);Mat smallImg = img(r);
将 Mat 转为 C API 数据类型:
Mat img = imread("image.jpg");IplImage img1 = img;CvMat m = img;
注意此处无数据复制操作。
将彩色图像转为灰度图像:
Mat img = imread("image.jpg"); // loading a 8UC3 imageMat grey;cvtColor(img, grey, CV_BGR2GRAY);
将图像的类型从8UC1转为32FC1:
src.convertTo(dst, CV_32F);
显示图像
在算法开发过程中,查看算法的中间结果是非常有用的。OpenCV提供了方便查看图像的方法。类型为 8U 的图像可以使用如下方法显示:
Mat img = imread("image.jpg");namedWindow("image", CV_WINDOW_AUTOSIZE);imshow("image", img);waitKey();
调用 waitKey() 会进入一个消息循环,来等待 image 窗口上的按键动作。 类型为 32F 的图像需要转为 8U 类型。如下:
Mat img = imread("image.jpg");Mat grey;cvtColor(img, grey, CV_BGR2GREY);Mat sobelx;Sobel(grey, sobelx, CV_32F, 1, 0);double minVal, maxVal;minMaxLoc(sobelx, &minVal, &maxVal); //find minimum and maximum intensitiesMat draw;sobelx.convertTo(draw, CV_8U, 255.0/(maxVal - minVal), -minVal);namedWindow("image", CV_WINDOW_AUTOSIZE);imshow("image", draw);waitKey();
显示图像
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。