GVKun编程网logo

OpenCV和Python-图片太大而无法显示(opencv图片显示的太大)

12

本文将带您了解关于OpenCV和Python-图片太大而无法显示的新内容,同时我们还将为您解释opencv图片显示的太大的相关知识,另外,我们还将为您提供关于Anaconda:即使已安装opencv,

本文将带您了解关于OpenCV和Python-图片太大而无法显示的新内容,同时我们还将为您解释opencv图片显示的太大的相关知识,另外,我们还将为您提供关于Anaconda:即使已安装opencv,也无法导入cv2(如何为python3安装opencv3)、OpenCV imshow 无法显示图片、OpenCV-Python 学习(一) OPENCV 中的GUI 特性之图片、opencv-python学习【1】图片的显示与保存的实用信息。

本文目录一览:

OpenCV和Python-图片太大而无法显示(opencv图片显示的太大)

OpenCV和Python-图片太大而无法显示(opencv图片显示的太大)

我有一个6400×3200的图像,而我的屏幕是1280 x800。因此,该图像需要调整大小以仅用于显示。我正在使用Python和OpenCV
2.4.9。根据OpenCV文档,

如果需要显示大于屏幕分辨率的图像,则需要在imshow之前调用namedWindow(“”,WINDOW_NORMAL)。

那就是我正在做的,但是图像没有适合屏幕,只显示了一部分,因为它太大了。我也尝试了cv2.resizeWindow,但没有任何区别。

import cv2
cv2.namedWindow("output",cv2.WINDOW_NORMAL)        # Create window with freedom of dimensions
# cv2.resizeWindow("output",400,300)              # Resize window to specified dimensions
im = cv2.imread("earth.jpg")                        # Read image
cv2.imshow("output",im)                            # Show image
cv2.waitKey(0)                                      # Display the image infinitely until any keypress

Anaconda:即使已安装opencv,也无法导入cv2(如何为python3安装opencv3)

Anaconda:即使已安装opencv,也无法导入cv2(如何为python3安装opencv3)

我安装了Anaconda(版本:conda 4.2.9,python3),并import cv2在遇到以下错误时尝试这样做:

ImportError: No module named ''cv2''

随着conda search cv2我得到这个:

  opencv                     2.4.2                np15py26_0  defaults                                     2.4.2                np15py27_0  defaults                                     2.4.2                np16py26_0  defaults                                     2.4.2                np16py27_0  defaults                                     2.4.2                np17py26_0  defaults                                     2.4.2                np17py27_0  defaults                                     2.4.2                np15py26_1  defaults                                     2.4.2                np15py27_1  defaults                                     2.4.2                np16py26_1  defaults                                     2.4.2                np16py27_1  defaults                                     2.4.2                np17py26_1  defaults                                     2.4.2                np17py27_1  defaults                                     2.4.6                np16py26_0  defaults                                     2.4.6                np16py27_0  defaults                                     2.4.6                np17py26_0  defaults                                     2.4.6                np17py27_0  defaults                                     2.4.6                np18py26_0  defaults                                     2.4.6                np18py27_0  defaults                                     2.4.9                np18py27_0  defaults                                     2.4.10               np19py26_0  defaults                                     2.4.10               np19py27_0  defaults                                     2.4.10              np110py27_1  defaults                                     2.4.10               np19py26_1  defaults                                     2.4.10               np19py27_1  defaults

我需要做些什么才能导入cv2模块?

我正在使用Ubuntu 16.04。

答案1

小编典典

opencv与python 3不兼容。我必须为python
3安装opencv3。在我们如何在anaconda上安装opencv的明显答案?解释了如何为蟒蛇安装opencv(3):

运行以下命令:

conda install -c https://conda.binstar.org/menpo opencv

我意识到opencv3现在也可用,运行以​​下命令:

conda install -c https://conda.binstar.org/menpo opencv3

编辑于2016年8月18日: 您可以通过以下方式永久添加“ menpo”频道:

conda config --add channels menpo

然后可以通过以下方式安装opencv:

conda install opencv (or opencv3)

2017年8月14日编辑:Clinicalgraphics ”频道为最近的python3提供了相对较新的vtk版本

conda install -c clinicalgraphics vtk

于2020年4月16日进行编辑(基于@AMC的评论): 可以通过以下方式安装OpenCV conda-forge(详细信息请参见此处)

conda install -c conda-forge opencv

OpenCV imshow 无法显示图片

OpenCV imshow 无法显示图片

问题:imshow 图片无法显示

症状:

 

解决方案,将 cv2.waitKey (0) 与 cv.imshow (''imgage'', img) 写到一起

 

 

 

 1 import numpy as np
 2 import cv2
 3 
 4 img = cv2.imread(''F:/team.jpg'', 0)  
 5 cv2.imshow(''image'', img)
 6 # waitKey, represent the Keyboard function
 7 k = cv2.waitKey(0)
 8 if k == 27:         # wait for ESC key to exit
 9     cv2.destroyAllWindows()
10 elif k == ord(''s''):   # wait for ''s'' key to save and exit
11     cv2.imwrite(''messigray.png'',img)
12     cv2.destroyAllWindows()
13

 

OpenCV-Python 学习(一) OPENCV 中的GUI 特性之图片

OpenCV-Python 学习(一) OPENCV 中的GUI 特性之图片

1,读入图像 

import numpy as np
import cv2
img = cv2.imread(''messi5.jpg'',0)

0:cv2.IMREAD_GRAYSCALE:以灰度模式读入图像

1:cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略,这是默认参数

  cv2.IMREAD_UNCHANGED:读入一幅图像,并且包括图像的 alpha 通道

2,显示图像


cv2.imshow(''image'',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

cv2.waitKey() 是一个键盘绑定函数。函数等待特定的几毫秒,看是否有键盘输入。有输入则继续,0代表无限等待

cv2.destroyAllWindows() 可以轻易删除任何我们建立的窗口

cv2.destroyWindow(),在括号内输入你想删除的窗口名  cv2.destroyWindow(''img'')

 

另一种方法先创建窗口再加载图像

cv2.namedWindow(''image'', cv2.WINDOW_NORMAL)
cv2.imshow(''image'',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

初 始 设 定 函 数标 签 是 cv2.WINDOW_AUTOSIZE。 但 是 如 果 你 把 标 签 改 成cv2.WINDOW_NORMAL,你就可以调整窗口大小了

3,保存图像

 cv2.imwrite(''messigray.png'',img)

4,实例(esc 退出27 ord(''s'')获得s的键值)

import numpy as np
import cv2


img = cv2.imread(''messi5.jpg'',0)
cv2.imshow(''image'',img)
k = cv2.waitKey(0)
if k == 27:
# wait for ESC key to exit
cv2.destroyAllWindows()
elif k == ord(''s''): # wait for ''s'' key to save and exit
cv2.imwrite(''messigray.png'',img)
cv2.destroyAllWindows()
警告:如果你用的是 64 位系统,你需要将  k = cv2.waitKey(0) 这行改成
k = cv2.waitKey(0)&0xFF

 

5,使用matplotlib

import numpy as np
import cv2
from matplotlib import pyplot as plt

img = cv2.imread(''messi5.jpg'',0)
plt.imshow(img, cmap = ''gray'', interpolation = ''bicubic'')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.show()

彩色图像使用 OpenCV 加载时是 BGR 模式。但是 Matplotib 是 RGB模式。所以彩色图像如果已经被 OpenCV 读取,那它将不会被 Matplotib 正确显示。

import cv2

import numpy as np

import matplotlib.pyplot as plt

img = cv2.imread(''messi4.jpg'')

b,g,r = cv2.split(img)

img2 = cv2.merge([r,g,b])

plt.subplot(121);plt.imshow(img) # expects distorted color

plt.subplot(122);plt.imshow(img2) # expect true color

plt.show()

cv2.imshow(''bgr image'',img) # expects true color

cv2.imshow(''rgb image'',img2) # expects distorted color

cv2.waitKey(0)

cv2.destroyAllWindows()

6,OpenCV 中的绘图函数

cv2.line(), cv2.circle(), cv2.rectangle(),cv2.ellipse(),cv2.putText()

上面所有的这些绘图函数需要设置下面这些参数:
• img:你想要绘制图形的那幅图像。
• color:形状的颜色。以 RGB 为例,需要传入一个元组,例如:
(255,0,0)
代表蓝色。对于灰度图只需要传入灰度值。
• thickness:线条的粗细。如果给一个闭合图形设置为 -1,那么这个图形
就会被填充。默认值是 1.
• linetype:线条的类型, 8 连接,抗锯齿等。默认情况是 8 连接。 cv2.LINE_AA为抗锯齿,这样看起来会非常平滑。

cv2.line(img,(0,0),(511,511),(255,0,0),5)

cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)

cv2.circle(img,(447,63), 63, (0,0,255), -1)

cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)

pts=np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts=pts.reshape((-1,1,2))
# 这里 reshape 的第一个参数为 -1, 表明这一维的长度是根据后面的维度的计算出来的。

font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,''OpenCV'',(10,500), font, 4,(255,255,255),2)

 

opencv-python学习【1】图片的显示与保存

opencv-python学习【1】图片的显示与保存

一.安装与导入

安装 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python

导入 import cv2

注意:

   p y c h a r m pycharm pycharm 中安装 cv2 后可能出现 cv2 不提示方法的问题,如果你的 cv2​ 安装路径为 ‘…\venv\Lib\site-packages\cv2’,在 cv2​ 该文件夹下有一个 cv2.pyd 文件,复制这个文件到 ‘…\venv\Lib\site-packages’ 下,然后重启 p y c h a r m pycharm pycharm 即可。

二.读取图像

1.相关API

  • retval = cv2.imread(filename[, flags]) 读取图片
    • 返回值:
      • retval:读取到的图像,未读取到时返回 None
    • 输入参数:
      • filename:要读取图像的完整文件名
      • flags:读取标记,以何种形式来读取文件 。flag 具体值如下,输入时既可以输入,也可以输入数值
数值 含义
cv2.IMREAD_UNCHANGED -1 保持原格式不变(依然是BGR格式)
cv2.IMREAD_GRAYSCALE 0 将图像调整为单通道的灰度图
cv2.IMREAD_COLOR 1 将图像调整为3通道的BGR格式(默认)
cv2.IMREAD_ANYDEPTH 2 当载入的图像深度为16或32位时返回其对应的深度图像,否则转换为8位图像
cv2.IMREAD_ANYCOLOR 4 以任何可能的颜色格式读取图像
cv2.IMREAD_LOAD_GDAL 8 使用gdal驱动程序加载图像
cv2.IMREAD_REDUCED_COLOR_2 将图像转为3通道的BGR彩色图像,并将图像尺寸减小为原来的 1/2
cv2.IMREAD_REDUCED_COLOR_4 将图像转为3通道的BGR彩色图像,并将图像尺寸减小为原来的 1/4
cv2.IMREAD_REDUCED_COLOR_8 将图像转为3通道的BGR彩色图像,并将图像尺寸减小为原来的 1/8
cv2.IMREAD_REDUCED_GRAYSCALE_2 将图像转为单通道灰度图像,并将图像尺寸减小为原来的 1/2
cv2.IMREAD_REDUCED_GRAYSCALE_4 将图像转为单通道灰度图像,并将图像尺寸减小为原来的 1/4
cv2.IMREAD_REDUCED_GRAYSCALE_8 将图像转为单通道灰度图像,并将图像尺寸减小为原来的 1/8

2.示例

import cv2

bgr = cv2.imread('dog.jpg')
print(bgr)

三.显示图像

1.相关API

  • cv2.namedWindow(winname)----创建指定名称的窗口,窗口用于显示图片
    • winname:窗口名称
  • cv2.imshow(winname, img)----显示图像
    • winname:窗口名称
    • img:要显示的图片
  • retval = cv2.waitkey([delay])----等待按钮,当用户按下键盘后该语句执行,并返回获取值
    • retval:返回值。如果有按键被按下,就返回按键的 ASCII 码,没有则返回-1
    • delay:等待键盘触发的时间,单位ms。当 d e l a y ≤ 0 delay\leq0 delay0 时无限等待, d e l a y delay delay 默认为0。
  • cv2.destroyWindow(winname)----销毁指定窗口
    • winname:窗口名称
  • cv2.destroyAllWindows()----销毁所有窗口

2.示例

(1).显示图片

import cv2

bgr = cv2.imread('dog.jpg')
cv2.namedWindow('dog')	# 创建窗口的这一步可以省略,省略时cv2.imshow('dog',bgr)会自己执行这一步
cv2.imshow('dog',bgr)
cv2.waitKey()

  注意:opencv 读取到的图片默认情况下是 bgr 格式,但是使用 cv2.imshow 显示图片时它又会把 bgr 格式转回为 rgb 格式去显示。所以在读取图片后如果不进行格式转换,用 matplotlib 去显示图片时,图片将会是如下图的 bgr 格式。

cv2显示RGB格式 matplotlib显示BGR格式

(2).waitKey显示不同图片

import cv2
dog = cv2.imread('dog.jpg')
cat = cv2.imread('cat.jpg')
cv2.imshow('dog',dog)
key = cv2.waitKey()
if key == ord('A'):
    cv2.imshow('another_dog',dog)
    if key == ord('B'):
        cv2.imshow('cat',cat)
        cv2.waitKey()

  程序会先显示一张狗的图片,按下A后显示 ‘dog’ 与 ‘another_dog’ 两个窗口,而按下B后显示 ‘dog’ 与 ‘cat’ 两个窗口。

(3).destroyWindow销毁指定窗口

import cv2

dog = cv2.imread('dog.jpg')
cv2.imshow('dog',dog)
cv2.waitKey()
cv2.destroyWindow('dog')

  按下任意按键销毁 ‘dog’ 窗口。

(4).destroyAllWindows销毁所有窗口

import cv2

dog = cv2.imread('dog.jpg')
cv2.imshow('dog1',dog)
cv2.imshow('dog2',dog)
cv2.waitKey()
cv2.destroyAllWindows

  按下任意按键销毁 ‘dog1’ 和 ‘dog2’ 窗口。

四.保存图像

1.相关API

  • retval = cv2.imwrite(filename, img[, params])
    • filename:要保存目标文件的完整路径文件名,包含扩展名
    • img:要保存的图片名称
    • retval :保存成功返回 True,失败返回 False
    • params:保存类型参数,可选。默认为None

2.示例

import cv2

dog = cv2.imread('dog.jpg')
cv2.imwrite('res.png',dog)

  默认读取图片后,保存图片功能也会将 bgr 转为 rgb 格式进行保存。

关于OpenCV和Python-图片太大而无法显示opencv图片显示的太大的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Anaconda:即使已安装opencv,也无法导入cv2(如何为python3安装opencv3)、OpenCV imshow 无法显示图片、OpenCV-Python 学习(一) OPENCV 中的GUI 特性之图片、opencv-python学习【1】图片的显示与保存的相关知识,请在本站寻找。

本文标签: