Estou usando opencv 2.4.2, python 2.7 O código simples a seguir criou uma janela com o nome correto, mas seu conteúdo está em branco e não mostra a imagem:
import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('ImageWindow',img)
alguém sabe sobre esse assunto?
python
opencv
image-processing
top.eng
fonte
fonte
Respostas:
imshow()
só funciona comwaitKey()
:(Todo o ciclo de mensagens necessário para atualizar a janela está oculto lá.)
fonte
print img
imprime uma matriz numpy correta, não umNoneType
objeto.Encontrei a resposta que funcionou para mim aqui: http://txt.arboreus.com/2012/07/11/highgui-opencv-window-from-ipython.html
fonte
Você deve usar
cv2.waitKey(0)
depoiscv2.imshow("window",img)
. Só então funcionará.fonte
Se você estiver executando em um console Python, faça o seguinte:
Então, se você pressionar Enterna imagem, ele irá fechar a imagem com sucesso e você poderá continuar executando outros comandos.
fonte
Eu enfrentei o mesmo problema. Tentei ler uma imagem do IDLE e tentei exibi-la usando
cv2.imshow()
, mas o visor congela e mostra quepythonw.exe
não está respondendo ao tentar fechar a janela.A postagem abaixo fornece uma possível explicação de por que isso está acontecendo
pythonw.exe não está respondendo
" Basicamente, não faça isso no IDLE. Escreva um script e execute-o a partir do shell ou o script diretamente no Windows, nomeando-o com uma extensão .pyw e clicando duas vezes nele. Aparentemente, há um conflito entre o próprio evento do IDLE loop e os dos kits de ferramentas da GUI. "
Quando usei
imshow()
um script e o executei em vez de executá-lo diretamente no IDLE, funcionou.fonte
adicione
cv2.waitKey(0)
no final.fonte
Para mim, waitKey () com número maior que 0 funcionou
fonte
Você tem todas as peças necessárias em algum lugar neste tópico:
funciona bem para mim no IDLE.
fonte
Se você não fez isso funcionar, é melhor colocar
em um arquivo e execute-o.
fonte
Não precisa de nenhum método adicional após
waitKey(0)
(resposta para o código acima)A janela aparece -> Clique na janela e clique em Enter. A janela será fechada.
fonte
Se você escolher usar "cv2.waitKey (0)", certifique-se de ter escrito "cv2.waitKey (0)" em vez de "cv2.waitkey (0)", porque o "k" minúsculo também pode congelar seu programa .
fonte
Eu também tive um erro -215. Achei que o problema era imshow, mas quando mudei o imread para ler um arquivo inexistente, não obtive nenhum erro. Então coloquei o arquivo de imagem na pasta de trabalho e adicionei cv2.waitKey (0) e funcionou.
fonte
Este erro é produzido porque a imagem não foi encontrada. Portanto, não é um erro da função imshow.
fonte
Eu tive o mesmo erro 215, que fui capaz de superar fornecendo o caminho completo para a imagem, como em C: \ Pasta1 \ Pasta2 \ nome do arquivo.ext
fonte