如何在Python的同一窗口位置依次显示图像?

时间:2018-08-10 10:49:44

标签: python opencv matplotlib

我在名为1.jgp和2.jpg的文件夹中有2张图像。我想编写一个python代码,在2秒的延迟后,在窗格的相同位置一个接一个地显示所有图像。 我尝试了以下代码:

<FrameLayout
    android:id="@+id/relative"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="12dp">
 <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:text="Any thing you want"
        android:background="@drawable/image"/>
 <View
     android:id="@+id/view"
     android:layout_width="match_parent"
     android:layout_height="1dp"
     android:layout_gravity="bottom"
     android:background="#929292" />
</FrameLayout>

但是此代码在窗口中显示1.jpg,然后我将其关闭后将显示2.jpg。我希望图像1在同一窗口中显示2秒后显示图像2。

1 个答案:

答案 0 :(得分:0)

import cv2
import matplotlib.pyplot as plt
import time

def main():
    imgPath="download.jpeg"
    imgPath2="cat.0.jpg"
    img1=cv2.imread(imgPath,1)
    img2=cv2.imread(imgPath2,1)

    img1=cv2.cvtColor(img1,cv2.COLOR_BGR2RGB)
    img2=cv2.cvtColor(img2,cv2.COLOR_BGR2RGB)

    plt.subplot(1,1,1)

    plt.imshow(img1)

    plt.title("Image 1.jpg")
    plt.xticks([])
    plt.yticks([])
    plt.show(block=False)
    time.sleep(3)
    plt.close()
    plt.subplot(1,1,1)
    plt.imshow(img2)
    plt.title("Image 2.jpg")
    plt.xticks([])
    plt.yticks([])
    plt.show()

if __name__=="__main__":
    main()

只需在block=False中添加plt.show()。它应该工作。另外,您需要关闭第一个plt才能在同一窗口中显示下一个。