精华内容
下载资源
问答
  • imshow

    2019-09-26 21:52:51
    imshow Description imshow(I) displays image I in a Handle Graphics® figure, where I is a grayscale, RGB (truecolor), or binary image.  For binary images, imshow displays pixels with the...

    imshow

    Description

    • imshow(I) displays image I in a Handle Graphics® figure, where I is a grayscale, RGB (truecolor), or binary image.

        For binary images, imshow displays pixels with the value 0 (zero) as black and 1 as white.

        imshow optimizes figure, axes, and image object properties for image display.

     

    • imshow(I,[low high]) displays the grayscale image I, where [low high] is a two-element vector that specifies the display range for I.

        The value low (and any value less than low) displays as black and the value high (and any value greater than high) displays as white.     

        imshow displays values in between as intermediate(中间的) shades of gray.

     

    • imshow(I,[]) displays the grayscale image I, where [] is an empty matrix that specifies that you want imshow to scale the image based on the range of pixel values in I, using [min(I(:)) max(I(:))] as the display range.

     

    • imshow(X,map) displays the indexed image X with the colormap map. A colormap matrix can have any number of rows, but it must have exactly 3 columns. Each row is interpreted as a color, with the first element specifying the intensity of red light, the second green, and the third blue. Color intensity can be specified on the interval 0.0 to 1.0.

     

    • imshow(filename) displays the image stored in the graphics file specified by filename.
    • imshow(___,Name,Value) displays an image, using name-value pairs to control aspects of the operation.
    • himage = imshow(___) returns the handle to the image object created by imshow.

       

       (本博客系原创,转载请注明出处:http://www.cnblogs.com/pfli1995/p/4658677.html)

       (博主cnds中对应文章:http://blog.csdn.net/xuexiyanjiusheng/article/details/46956635)

     

    注意:

    • 为了节省存储空间,matlab为图像提供了特殊的数据类型uint8(8位无符号整数),以此方式存储的图像称作8位图像。

        因此,matlab读入图像的数据是uint8,而matlab中数值一般采用double型(64位)存储和运算。所以要先将图像转为double格式的才能运算

    • 注意,imshow并不是只能显示灰度图像,如果unit8型或者double型数据是三维的,那么就会输出彩色图像。
    • double型的取值为0~1之间,unit8取值0~255。如果是double类型,并且范围不是0~1,那么超过1的都被看作1,会显示为白色。
    • 设 I 是一个uint8型的图像,如果直接 double(I) 再 imshow(double(I)) 的话,会输出错误的图像,有很多地方为白色,这个时候,需要先把转换为double后的图像的像素值先归一化到0~1区间,即 imshow(double(I)./255);第二种方法是,直接用 im2double ,会自动归一化到0~1,此时 imshow(im2double(I)) 即得到正确输出。 注意, im2double(I) 和 double(I)./255 是完全等价的,可以用它们分别作用后的矩阵相减,发现全为0。
    • 如果想把数据从 double 型还回到 uint8 型,也有两种方法。 一是:im2uint8(I) ; 另一种是:uint8(round(I*255)) 。注意,博主也验证过了,这两种方法也是完全等效的
    • 另外还发现了一个函数:mat2gray, 它能够将范围在 0~255 的 uint8 或者 double 型的矩阵/图像数据转化为 0~1 的 double 型矩阵/图像数据

     

    索引图像的显示:

      Display Indexed Image
      Read a sample indexed image, corn.tif, into the workspace, and then display it.

    [X,map] = imread('corn.tif');
    imshow(X,map)

     

     

    转载于:https://www.cnblogs.com/pfli1995/p/4658677.html

    展开全文
  • 直线检测: cv2.HoughLinesP cv2.namedWindow("enhanced",0);...cv2.imshow("enhanced",lines) cv2.waitKey(0) 创建窗口时候改变下参数就可以鼠标随意拖动窗口改变大小啦 cv::namedWindow("ca...

    11年it研发经验,从一个会计转行为算法工程师,学过C#,c++,java,android,php,go,js,python,CNN神经网络,四千多篇博文,三千多篇原创,只为与你分享,共同成长,一起进步,关注我,给你分享更多干货知识!

    c++:

    
    创建窗口时候改变下参数就可以鼠标随意拖动窗口改变大小啦
    
    cv::namedWindow("camera", CV_WINDOW_NORMAL);//CV_WINDOW_NORMAL就是0
    cv::imshow("camera", frame);

    python: 

    改变大小:

    
    imgpath=r"d:/20200708002140.jpg"
    width=1200
    height=800
    img=cv2.imread(imgpath)
    cv2.namedWindow(imgpath, 0);
    cv2.resizeWindow(imgpath, int(width * (height - 80) / height), height - 80);
    cv2.imshow(imgpath, img)
    cv2.waitKey()
    
    

     

    移动位置

    imgpath=r"d:/20200708002140.jpg"
    width=1200
    height=800
    
    img=cv2.imread(imgpath)
    
    cv2.namedWindow('image', cv2.WINDOW_NORMAL)
    # 改变窗口位置:left top
    
    cv2.moveWindow("image", 1000, 100)
    
    #改变窗口位置:left top
    
    cv2.imshow("image", img)
    cv2.waitKey()

     

    选取矩形ROI

        OpenCV自带 API 可直接选择矩形区域作为ROI,该API位于目标追踪模块,主要是cv2.selectROI()函数。

    import cv2
    
    import imutils
    
    
    img = cv2.imread("./test_image.jpg")
    
    img = imutils.resize(img, width=500)
    
    
    roi = cv2.selectROI(windowName="roi", img=img, showCrosshair=True, fromCenter=False)
    
    x, y, w, h = roi
    
    
    cv2.rectangle(img=img, pt1=(x, y), pt2=(x + w, y + h), color=(0, 0, 255), thickness=2)
    
    cv2.imshow("roi", img)
    
    cv2.waitKey(0)
    
    cv2.destroyAllWindows()

    选取多边形ROI

        多边形ROI,主要利用鼠标交互进行绘制:

       1. 单击左键,选择多边形的点;

       2. 单击右键,删除最近一次选择的点;

       3. 单击中键,确定ROI区域并可视化。

       4. 按”S“键,将多边形ROI区域的点保存到本地”config.pkl"文件中。

     

    import cv2
    
    import imutils
    
    import numpy as np
    
    import joblib
    
    
    pts = [] # 用于存放点
    
    
    
    # 统一的:mouse callback function
    
    def draw_roi(event, x, y, flags, param):
    
    img2 = img.copy()
    
    
    if event == cv2.EVENT_LBUTTONDOWN: # 左键点击,选择点
    
    pts.append((x, y))
    
    
    if event == cv2.EVENT_RBUTTONDOWN: # 右键点击,取消最近一次选择的点
    
    pts.pop()
    
    
    if event == cv2.EVENT_MBUTTONDOWN: # 中键绘制轮廓
    
    mask = np.zeros(img.shape, np.uint8)
    
    points = np.array(pts, np.int32)
    
    points = points.reshape((-1, 1, 2))
    
    # 画多边形
    
    mask = cv2.polylines(mask, [points], True, (255, 255, 255), 2)
    
    mask2 = cv2.fillPoly(mask.copy(), [points], (255, 255, 255)) # 用于求 ROI
    
    mask3 = cv2.fillPoly(mask.copy(), [points], (0, 255, 0)) # 用于 显示在桌面的图像
    
    
    show_image = cv2.addWeighted(src1=img, alpha=0.8, src2=mask3, beta=0.2, gamma=0)
    
    
    cv2.imshow("mask", mask2)
    
    cv2.imshow("show_img", show_image)
    
    
    ROI = cv2.bitwise_and(mask2, img)
    
    cv2.imshow("ROI", ROI)
    
    cv2.waitKey(0)
    
    
    if len(pts) > 0:
    
    # 将pts中的最后一点画出来
    
    cv2.circle(img2, pts[-1], 3, (0, 0, 255), -1)
    
    
    if len(pts) > 1:
    
    # 画线
    
    for i in range(len(pts) - 1):
    
    cv2.circle(img2, pts[i], 5, (0, 0, 255), -1) # x ,y 为鼠标点击地方的坐标
    
    cv2.line(img=img2, pt1=pts[i], pt2=pts[i + 1], color=(255, 0, 0), thickness=2)
    
    
    cv2.imshow('image', img2)
    
    
    
    # 创建图像与窗口并将窗口与回调函数绑定
    
    img = cv2.imread("./test_image.jpg")
    
    img = imutils.resize(img, width=500)
    
    cv2.namedWindow('image')
    
    cv2.setMouseCallback('image', draw_roi)
    
    print("[INFO] 单击左键:选择点,单击右键:删除上一次选择的点,单击中键:确定ROI区域")
    
    print("[INFO] 按‘S’确定选择区域并保存")
    
    print("[INFO] 按 ESC 退出")
    
    
    while True:
    
    key = cv2.waitKey(1) & 0xFF
    
    if key == 27:
    
    break
    
    if key == ord("s"):
    
    saved_data = {
    
    "ROI": pts
    
    }
    
    joblib.dump(value=saved_data, filename="config.pkl")
    
    print("[INFO] ROI坐标已保存到本地.")
    
    break
    
    cv2.destroyAllWindows()

     

    展开全文
  • OpenCV_ cv2.imshow()

    万次阅读 2018-09-12 12:47:34
    cv2.imshow() cv2.imShow()函数可以在窗口中显示图像。该窗口和图像的原始大小自适应(自动调整到原始尺寸)。 第一个参数是一个窗口名称(也就是我们对话框的名称),它是一个字符串类型。第二个参数是我们的图像...

    cv2.imshow()

        cv2.imShow()函数可以在窗口中显示图像。该窗口和图像的原始大小自适应(自动调整到原始尺寸)。

        第一个参数是一个窗口名称(也就是我们对话框的名称),它是一个字符串类型。第二个参数是我们的图像。您可以创建任意数量的窗口,但必须使用不同的窗口名称。

    
     
    1. import cv2

    2.  
    3. img = cv2.imread('3.jpg',1)

    4. cv2.imshow('imshow',img)

    5. cv2.waitKey(0)

    6. cv2.destroyAllWindows()

    图片效果如下:

     

    ps:我的是win10 64位操作系统。不同的操作系统也许会有些许区别。

    在官方文档的示例之后,它还有一段说明,我将它翻译了一下(主要是对上面两个函数进行说明):

     

    cv2.waitKey(0): 是一个和键盘绑定的函数,它的作用是等待一个键盘的输入(因为我们创建的图片窗口如果没有这个函数的话会闪一下就消失了,所以如果需要让它持久输出,我们可以使用该函数)。它的参数是毫秒级。该函数等待任何键盘事件的指定毫秒。如果您在此期间按下任何键,程序将继续进行。我们也可以将其设置为一个特定的键。

    cv2.destroyALLWindows():    销毁我们创建的所有窗口。如果要销毁任何特定窗口,请使用函数cv2.destroyWindow(),其中传递确切的窗口名称作为参数。(应该是使用创建窗口时所使用的窗口名称,字符串类型。)

    注:

     

          我们还可以使用另一种方法来加载图片:先创建一个窗口,之后在需要的时候将图像加载到该窗口。

    说明:在这种情况下,用cv2.namedWindow()函数可以指定窗口是否可以调整大小。在默认情况下,标志为cv2.WINDOW_AUTOSIZE。但是,如果指定标志为cv2.WINDOW_Normal,则可以调整窗口的大小。当图像尺寸太大,并在窗口中添加跟踪条时,这些操作可以让我们的工作更方便一点。

    可以看看下面代码:

    
     
    1. cv2.namedWindow('image', cv2.WINDOW_NORMAL)

    2. cv2.imshow('image',img)

    3. cv2.waitKey(0)

    4. cv2.destroyAllWindows()

    效果如下:

     

    说明:

        在上面的代码中,我们的cv2.imshow()函数的第一个参数应和窗口的名称保持一致,这样才能将图片加载到窗口中去。

    转载自:https://blog.csdn.net/liuqipao55/article/details/80297933

    展开全文
  • 主要介绍了plt.imshow与cv2.imshow显示颜色问题,本文给大家介绍的非常详细,同时给大家提到了cv2.imshow()和plt.imshow()的区别讲解,需要的朋友可以参考下
  • python中plt.imshow与cv2.imshow显示颜色问题,图像,什么时候,通道,颜色,的是python中plt.imshow与cv2.imshow显示颜色问题易采站长站,站长之家为您整理了python中plt.imshow与cv2.imshow显示颜色问题的相关内容。...

    python中plt.imshow与cv2.imshow显示颜色问题,图像,什么时候,通道,颜色,的是

    python中plt.imshow与cv2.imshow显示颜色问题

    易采站长站,站长之家为您整理了python中plt.imshow与cv2.imshow显示颜色问题的相关内容。

    在用plt.imshow和cv2.imshow显示同一幅图时可能会出现颜色差别很大的现象。

    这是因为:opencv的接口使用BGR,而matplotlib.pyplot 则是RGB模式import cv2 import numpy as np import matplotlib.pyplot as plt img = cv2.imread('lena_std.tif') b,g,r = cv2.split(img) img2 = cv2.merge([r,g,b]) plt.subplot(121);plt.imshow(img) plt.subplot(122);plt.imshow(img2) plt.show() cv2.imshow('bgr image',img) cv2.imshow('rgb image',img2) cv2.waitKey(0) cv2.destroyAllWindows()

    程序运行结果如下:

    Matplotlib显示结果

    OpenCV显示结果

    下面看下cv2.imshow()和plt.imshow()的区别 什么时候使用plt.show(),什么时候用cv2.imshow()? 如果需要展示读入的图像,或者展示对读入图像进行一系列操作后的图像时,使用cv2.imshow() 如果不需要展示原始图像,而是绘制一张新的图像,使用plt.imshow() 其实两者都可以,但要注意的是opencv是BGR通道,plt默认RGB通道,若使用cv2.imread()读入图像,用plt.imshow()展示原始图像或者展示对读入图像进行一系列操作后的图像时,需要进行通道转换。 在展示灰度图像时,cv2.imshow(‘gray', gray) plt.imshow(gray,cmap=‘gray'), plt.title(‘gray')以上就是关于对python中plt.imshow与cv2.imshow显示颜色问题的详细介绍。欢迎大家对python中plt.imshow与cv2.imshow显示颜色问题内容提出宝贵意见

    展开全文
  • Matlab imshow

    2017-11-30 21:23:13
    如果需要运算,把图像数据强制转换为double后,用imshow()则无法正常显示,大片白色区域,少数黑点点,这是因为imshow()对double型数值默认在0~1范围内,即大于1时显示白色,可以人为将其缩放到[0,1]之间,即imshow...
  • Main imshow api

    2020-11-20 23:53:31
    <p>Our main <code>imshow</code> api has changed since our last release. Now <code>imshow</code> returns a <code>window</code> which contains a <code>viewer</code> which contains the <code>layers...
  • 查找资料后,才明白OpenCV里的imshow()和Matplotlib.pyplot的imshow()在使用上有一些区别,不注意的话很容易就会导致很奇怪的结果。 下面的示例代码及运行结果显示了这种差异: import cv2 import matplotlib....
  • Matplotlib是Python最著名的...imshow:热图(heatmap)是数据分析的常用方法,通过色差、亮度来展示数据的差异、易于理解。Python在Matplotlib库中,调用imshow()函数实现热图绘制。imshow 参数及其默认值plt.imshow...
  • matlab开发-imshow3D

    2019-08-21 13:48:25
    matlab开发-imshow3D。imshow3d:(3d imshow)逐片显示3d图像。强度调整和鼠标浏览切片
  • opencv imshow

    千次阅读 2019-03-14 22:51:00
    CV_EXPORTS_W void imshow( const string& winname, InputArray mat); winname:窗体名称 mat:要显示的图像数据 转载于:https://www.cnblogs.com/hehe2014/p/10534210.html
  • matplotlib imshow

    2018-05-28 10:09:00
    imshow()函数格式为: matplotlib.pyplot.imshow(X,cmap=None) X:要绘制的图像或数组。 cmap:颜色图谱(colormap),默认绘制为RGB(A)颜色空间。 这篇文章写的蛮好...
  • matlab imshow

    千次阅读 2018-06-07 15:55:44
    matlab中的imshow函数,是一个经常使用又容易“犯错”的函数,尤其是其参数中的[]让人无语,找了一个不错的...在matlab中经常使用imshow函数来显示图像,而此时的图像矩阵可能经过了某种运算。在matlab中为了保证...
  • imshow()函数 Matplotlib imshow() 函数声明 # Autogenerated by boilerplate.py. Do not edit as changes will be lost. @docstring.copy(Axes.imshow) def imshow( X, cmap=None, norm=None, aspect=None, int.....
  • 一、问题在Python里使用OpenCV时,一般是通过cv2.imread读入图片,然后用plt.imshow显示图片,但最近学习OpenCV时这样做的结果与预期的结果有较大的出入。查找资料后,才明白OpenCV里的imshow()和Matplotlib.pyplot...
  • 序上一篇opencv学习之读取图像-imread函数介绍完opencv读取图片函数imread,这次来介绍与它对应的图像显示函数imshowimshow函数imshow函数功能imshow的函数功能也非常简单,名称也可以看出来,image show的缩写。...
  • Matlab里imshow显示的图片比屏幕大使用滚动条完整显示-imshow_large.zip 效果图如下: matlab21.jpg 虽然原图很大,可能整个屏幕都显示不了。 不过可以在imshow的时候,给...
  • 在matplotlib中,imshow方法用于绘制热图,基本用法如下import matplotlib.pyplot as pltimport numpy as npnp.random.seed(123456789)data = np.random.rand(25).reshape(5, 5)plt.imshow(data)输出结果如下imshow...
  • cv2.imshow()和plt.imshow()的区别

    千次阅读 多人点赞 2020-04-16 13:02:59
    cv2.imshow()和plt.imshow()的区别 什么时候使用plt.show(),什么时候用cv2.imshow()? 如果需要展示读入的图像,或者展示对读入图像进行一系列操作后的图像时,使用cv2.imshow() 如果不需要展示原始图像,而是绘制...
  • matlab开发-imshow4

    2019-08-26 00:57:01
    matlab开发-imshow4。用于二维/三维/四维图像视图的功能。
  • matlab开发-imshow3Dfull

    2019-08-22 03:32:19
    matlab开发-imshow3Dfull。imshow3dfull在3个正交视图中逐片显示三维图像,使用鼠标控制
  • Matplotlib imshow()函数

    万次阅读 多人点赞 2019-08-31 15:04:28
    imshow详解热图知识 热图(heatmap)是数据分析的常用方法,通过色差、亮度来展示数据的差异、易于理解。Python在Matplotlib库中,调用imshow()函数实现热图绘制。 参考资料:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,658
精华内容 4,663
关键字:

imshow