Python cv2.resize nefunguje korektne s PysimpleGui

Python cv2.resize nefunguje korektne s PysimpleGui
« kdy: 20. 01. 2020, 20:10:13 »
Zdravim.
Zasekol som sa s kodom. V skratke nacitam obrazok pomocov opencv nasledne zmenim jeho velkost a pravdepodobe je chyba niekde tu.
Takze najprv si zistim velkost celej obrazovky a vypocitam si kolko potrebujem.
Kód: [Vybrat]
stream_screen_height = int(height2 / 100 * 70)
stream_screen_width = int(width / 100 * 80)
Potom zmenim velkost obrazku
Kód: [Vybrat]
dim = (screen_width_output_video_width  ,screen_height_output_video_height)
            frame = cv2.resize(frame, dim)
a nasledne pomocov PiSimpleGUI ho vykreslujem.
Kód: [Vybrat]
if start_cammera==True:
                window.FindElement('image').Update(data=cv2.imencode('.png', processimage)[1].tobytes() )
                window.Refresh()

Problem je ze obrazok sa "neroztiahne" do plneho okna ale vznikne mi toto. https://imgur.com/sIb14BE
Preco sa to deje? Obrazok by mal byt presne podla okna a malo by byt jedno ake rozsirenie ma zdroj alebo nie?
Myslim si ale nie je to na 100% ze, obrazok by sa mal roztiahnut aj keby bol "abstraktny" alebo nie?





Re:Python cv2.resize nefunguje korektne s PysimpleGui
« Odpověď #1 kdy: 21. 01. 2020, 19:14:01 »
Z těchto kousků kódu se nedá poznat, jestli je to vůbec špatně. Jaká je velikost okna? Co je height2,
width, co je screen_width_output_video_width? Resizuje se frame, ale zobrazuje se jakejsi processimage.

Mimochodem, co je "abstraktny" obrazok?

Re:Python cv2.resize nefunguje korektne s PysimpleGui
« Odpověď #2 kdy: 22. 01. 2020, 09:40:45 »
Petr Blahos : Ano naberiem frame na zaciatku ale neskorsie sa to preklapa do "processimage" - pretoze ten processimage sa pouziva dalej (vyhladavanie na internete, dalsi processing atd atd) a chcel som tam mat poriadok.

V podstate uz ked som sprocesoval frame chcem ho roztiahnut do toho okna.
height2 a width je rozsirenie obrazovky nasledne odpocitas kolko zhruba potrebujes a to je vysledok pre kalkulaciu velkosty obrazku.

Teda ked odmazem "vatu"
Kód: [Vybrat]
 
dim = (screen_width_output_video_width  ,screen_height_output_video_height)
processimage) = cv2.resize(frame, dim)
window.FindElement('image').Update(data=cv2.imencode('.png', processimage)[1].tobytes() )


abstraktny" obrazok - myslel som to tak ze sa obraz roztiahne do rozmeru okna aj za cenu deformacie.

Alebo cela idea je zla od zaciatku a je potrebne zmenit velkost hned ako to zoberies s kamery?


Re:Python cv2.resize nefunguje korektne s PysimpleGui
« Odpověď #3 kdy: 22. 01. 2020, 10:24:15 »
Alebo cela idea je zla od zaciatku a je potrebne zmenit velkost hned ako to zoberies s kamery?

Ne. Teď bych zkusil:

Kód: [Vybrat]
print(window.FindElement('image').GetSize())
print(dim)

A to by mělo lecos napovědět.

tecka

  • ***
  • 138
    • Zobrazit profil
    • E-mail
Re:Python cv2.resize nefunguje korektne s PysimpleGui
« Odpověď #4 kdy: 22. 01. 2020, 10:52:04 »
Z Petrovy odpovědi ti mělo dojít, že nemůžeme tušit, kde máš jaké hodnoty a co všechno s tím děláš, a tyhle informace jsi měl doplnit.

cv2.resize černé okraje nepřidává. Někde máš něco blbě. Hledej, šmudlo.


Re:Python cv2.resize nefunguje korektne s PysimpleGui
« Odpověď #5 kdy: 22. 01. 2020, 12:09:02 »
tecka : offtopic odpovede si nechaj na doma :)

Petr Blahos
- no a to je ten problem. To cislo je diametralne ine ako som dal pred resize a netusim preco. Poobede spravim este par pokusov. Zatial dakujem

tecka

  • ***
  • 138
    • Zobrazit profil
    • E-mail
Re:Python cv2.resize nefunguje korektne s PysimpleGui
« Odpověď #6 kdy: 23. 01. 2020, 10:51:33 »
Moje odpověď je naprosto ontopic. cv2.resize černé okraje nepřidává. Tečka.
Problém je v kódu, který jsi neukázal. Tak dodej více informací.