ZWH_12138 2021-08-07 11:30 采纳率: 100%
浏览 50
已结题

如何每调用一次函数就显示一张图片?

import cv2 as cv

def br(image,c,b):
    h, w, ch = image.shape
    blank = np.zeros([h, w, ch], image.dtype)
    dst = cv.addWeighted(image, c, blank, 1-c, b)
    cv.imshow('br', dst)

sr3 = cv.imread('H:/ocv/opencv/sources/samples/data/lena.jpg')
cv.namedWindow('image3', cv.WINDOW_AUTOSIZE)
cv.imshow('image3', sr3)
br(sr3, 1, 0)
br(sr3, 1, 100)
br(sr3, 1, -100)

cv.waitKey(0)
cv.destroyAllWindows()

这里br函数调用了三次,我想显示三张图片,但是结果只显示了最后一次调用的结果,我自己判断的原因是每次调用的结果是显示在同一个命名的窗口上,所以后一次覆盖了前一次的,所以我想知道如何改一下代码,可以独立或者一次显示三张结果图片

  • 写回答

1条回答 默认 最新

  • CSDN专家-showbo 2021-08-07 12:57
    关注

    你既然找到了原因,那就起不同窗口名就行,效果如下,有帮助麻烦点个采纳【本回答右上角】,谢谢~~

    img

    import cv2 as cv
    import numpy as np
    
    index=1
    def br(image,c,b):
        global index
        h, w, ch = image.shape
        blank = np.zeros([h, w, ch], image.dtype)
        dst = cv.addWeighted(image, c, blank, 1-c, b)
        winname='br'+str(index)
        cv.imshow(winname,dst)#另外其一个名称
        cv.moveWindow(winname,index*200,100)
        index+=1
    sr3 = cv.imread(r'C:\Users\showbo\Desktop\edge.jpg')
    cv.namedWindow('image3', cv.WINDOW_AUTOSIZE)
    cv.imshow('image3', sr3)
    br(sr3, 1, 0)
    br(sr3, 1, 100)
    br(sr3, 1, -100)
    cv.waitKey(0)
    cv.destroyAllWindows()
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月15日
  • 已采纳回答 8月7日
  • 创建了问题 8月7日

悬赏问题

  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题
  • ¥15 用ADS设计一款的射频功率放大器
  • ¥15 怎么求交点连线的理论解?