Çözüldü PyCharm "215: Assertion failed" hatası

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

bLaDe65

Kilopat
Katılım
29 Temmuz 2016
Mesajlar
48
Daha fazla  
Cinsiyet
Erkek
PyCharm'ı ve gerekli tüm bileşenlerini indirdim. Ancak kod çalıştırdığımda aşağıdaki hatayı alıyorum. Bunun sebebi olarak kodu CV2 kütüphanesinde yazılmış olması. Python kütüphanelerinde artık CV2 kaldırıldığı için OpenCV-Python'u kullanmaya başladım PC'yi formatlayınca. Yardımcı olabilecek yok mu?

Kod:
C:\Users\...\PycharmProjects\pythonProject\venv\Scripts\python.exe C:/Users/Ertunc/PycharmProjects/pythonProject/main.py
Traceback (most recent call last):
 File "C:\Users\...\PycharmProjects\pythonProject\main.py", line 25, in <module>
 CV2.imwrite("SS. PNG", roi)
CV2.error: OpenCV(4.5.4-dev) D:\a\opencv-python\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp:799: error: (-215: Assertion failed) !_img.empty() in function 'cv::imwrite'

Process finished with exit code 1

Cevabını bilen biri var mı?
Konuyu webde arattığımda benzer bir durumun olduğunu görmedim. Ayrıyetten bionluk sitesinden biriyle anlaşıp yazdırdığım ve programlama bilmediğim için çözüm üretemiyorum. Programı yapan arkadaşta vizeleri olduğu için benden biraz süre vermemi istedi yardımcı olacağınızı düşündüğüm için sizleri etiketledim. Şimdiden teşekkürler
@cenkkk @KremJanti @Anceph @SinekTV @permatik @emresudo @innsomniac @Muofer @b0reaS ☺️
 
Son düzenleme:
Çözüm
  1. Eğer Windows kullanıyorsanız Home · UB-Mannheim/tesseract Wiki adresinden, Linux kullanıyorsanız da dağıtımınızın sahip olduğu paket yöneticinizden işletim sisteminize uygun Tesseract binary'lerini indirin.
  2. Tesseract binary'lerinin indiği klasörü PATH'a ekleyin. Windows için arama kısmına Sistem ortam değişkenlerini düzenleyin yazın ve ilgili yere tıklayın. Daha sonra açılan pencerede Ortam Değişkenleri butonuna tıklayın. Sonrasında yeni açılacak pencerede hem üst kısımda hem de alt kısımda İki adet Path yazan yer olacak. Her ikisine sırayla çift tıklayın, açılacak yeni pencerede Yeni butonuna tıklayın, Tesseract'ın yüklenmiş olduğu dosya yolunu yapıştırın ve Tamam'a tıklayın. Daha sonra programı yeniden çalıştırın. Not: benim bilgisayarımda Tesseract'ın yüklendiği dosya yolu C:\Program Files\Tesseract-OCR şeklinde. Siz ne olur ne olmaz diye indirirken dosya yoluna dikkat edin. Eğer PATH'a ekleme kısmında sorun yaşadıysanız Add to the PATH on Windows 10 | Architect Ryan sitesinde ekran görüntülerini içeren güzel bir anlatım var.

Eğer bu adım sorununuzu çözmezse diye birkaç sorum daha olacak. Acaba yapmaya çalıştığınız şey sitelerdeki BTC ve benzeri kripto para değerlerini almak mıdır? Eğer öyleyse site fark eder mi veya tercih ettiğiniz başka siteler var mı? Ayrıca program çalıştığı sürede ilgili web sitesini ekranınızda açık tutuyor musunuz?
  1. Eğer Windows kullanıyorsanız Home · UB-Mannheim/tesseract Wiki adresinden, Linux kullanıyorsanız da dağıtımınızın sahip olduğu paket yöneticinizden işletim sisteminize uygun Tesseract binary'lerini indirin.
  2. Tesseract binary'lerinin indiği klasörü PATH'a ekleyin. Windows için arama kısmına Sistem ortam değişkenlerini düzenleyin yazın ve ilgili yere tıklayın. Daha sonra açılan pencerede Ortam Değişkenleri butonuna tıklayın. Sonrasında yeni açılacak pencerede hem üst kısımda hem de alt kısımda İki adet Path yazan yer olacak. Her ikisine sırayla çift tıklayın, açılacak yeni pencerede Yeni butonuna tıklayın, Tesseract'ın yüklenmiş olduğu dosya yolunu yapıştırın ve Tamam'a tıklayın. Daha sonra programı yeniden çalıştırın. Not: benim bilgisayarımda Tesseract'ın yüklendiği dosya yolu C:\Program Files\Tesseract-OCR şeklinde. Siz ne olur ne olmaz diye indirirken dosya yoluna dikkat edin. Eğer PATH'a ekleme kısmında sorun yaşadıysanız Add to the PATH on Windows 10 | Architect Ryan sitesinde ekran görüntülerini içeren güzel bir anlatım var.

Eğer bu adım sorununuzu çözmezse diye birkaç sorum daha olacak. Acaba yapmaya çalıştığınız şey sitelerdeki BTC ve benzeri kripto para değerlerini almak mıdır? Eğer öyleyse site fark eder mi veya tercih ettiğiniz başka siteler var mı? Ayrıca program çalıştığı sürede ilgili web sitesini ekranınızda açık tutuyor musunuz?
Hocam elinize sağlık. Valla çözüldü sorunum. Dediğiniz gibi tesseractı yükleyip path e ekleyince herşey kendiliğinden oluverdi 😂
Sorularınıza gelecek olursam, genelde kripto paralar ve değerlerindeki artışlar/düşüşler içindi. Sitelerin vermiş olduğu yazılımlara güvenmediğimden kendi programlarımı oluşturucaktım bundan birkaç yıl önce. O zamanlar bu işi yapacak kişileri bulamamıştım veya kimse ilgilenmemişti. İmkanım olmadığı için ertelemiştim bu isteği şimdi imkan bulunca hemen yapıverdim. İleride başka işlerimede lazım olur düşüncesiyle ve yapılış aşamasında her sayfada çalışmaması nedeniyle sadece renk okuması yapmasını sağladım. Ama buda görünüşte öyle kaldı. O yüzden ofis programlarında renkli kısımları/bölümleri okuması için kullanacağım artık😒

2. sorunuz kendi belirlediğim birkaç site vardı şuan için aklıma gelen site sadece cryptobubbles. Malum sisteme format atmaktan verilerim uçtu. Aklıma gelmesini bekliyorum. Site tercihim yok. Ama başka sitelerle çalışmaya başladım ancak program her sitede işe yaramıyor. Anladığım kadarıyla java kodlama bulunan bölgelerde saçma sapan sonuçlar ortaya çıkıyor.

3. sorunuz ise sayfa açık kalmak zorunda diğer türlü okuma yapmıyor. Buna çözüm olarak virtual machine kurmayı(arka planda hem sistem hemde sayfa açık kalıyor ya)düşünüyorum, sorunu çözer mi sizce?

Şimdiyse tek sorunumun bu java destekli yazıları okumuyor olması sizi çok uğraştırmayacaksa bu konudaki önerileriniz nelerdir dikkatle bekliyorum cevabınızı
iyi forumlar dilerim😌
 
Şimdi şöyle, bana kalırsa opencv ve pytesseract kullanmak yerine başka kütüphanelerin birleşimini kullanın derim. Herhangi bir sitede istediğiniz veriler eğer statikse requests ve lxml ikilisini şiddetle öneririm. Eğer ki istediğiniz veriler sitede JavaScript ile dinamik olarak sağlanıyorsa o zaman selenium kullanın derim. Bu ikisini yaptığınız takdirde hem işlemlerinizi arka planda halledebilirsiniz hem de daha kolay ve evrensel bir şekilde verilere erişebilirsiniz.
 
Şimdi şöyle, bana kalırsa opencv ve pytesseract kullanmak yerine başka kütüphanelerin birleşimini kullanın derim. Herhangi bir sitede istediğiniz veriler eğer statikse requests ve lxml ikilisini şiddetle öneririm. Eğer ki istediğiniz veriler sitede JavaScript ile dinamik olarak sağlanıyorsa o zaman selenium kullanın derim. Bu ikisini yaptığınız takdirde hem işlemlerinizi arka planda halledebilirsiniz hem de daha kolay ve evrensel bir şekilde verilere erişebilirsiniz.
Hocam selenium ile sadece tek bir web sitesi üzerinden işlem yapılabiliyordu. Oyun içi verileri, ofis programlarını ve web sitelerini dahil ettiğimden ve her web sitesi için ayrı ayrı kodları değiştirmemek için bu yolu tercih etmiştim. Birde java kodlamalar içerisindeki sayılar(1,2,3 yerine örneğin j,j1,j2 gibi yazılmış) ile alakalı değilde font ve puntoyla(css ile) alakalıda olabilir(bence ilk seçenekten ötürü).

Bu sebeplerden ötürü sizin önerileriniz neler olurdu?(not 30 dkda bir kontrol ediyorum konuyu☺️)
Veriler değişken oluyor genelde hocam bu arada
 
Selenium, bilgisayarınızda kullandığınız web tarayıcısı üzerinde yapabileceğiniz neredeyse her şeyi yapmak üzerine tasarlanmıştır çünkü genel kullanım amacı web uygulamalarını her yönden test etmektir. Dolayısıyla çalışan bir kodda nasıl tarayıcınızda birçok sekme açabiliyorsanız Selenium'da da birden fazla sekme kullanabilirsiniz ve aralarında düzenli olarak geçiş yapıp istediğiniz verileri bulabilir hatta sitelerle aynı kendi tarayıcınızda etkileşime giriyormuşçasına etkileşime girebilirsiniz. Arada değiştirmeniz gereken tek şey, farklı sitelerde istediğiniz farklı bölümlerdeki veriler için farklı navigasyon kodları (örneğin farklı XPath ifadeleri) yazmak olacaktır. Selenium kullandığınız takdirde verilerin değişken olması önemli değil çünkü yaptığı şey bir web tarayıcısı açmak olduğu için değişen verilere her zaman erişebilirsiniz. Sadece gerekli XPath, CSSSelector vb. kodları oluşturmanız. Çok fazla gereksiz kod kalabalığı yapmadan farklı sitelerle aynı kod üzerinde uğraşmanız pekâlâ mümkün. Eriştiğiniz sitelerdeki js kodlarının yapacağınız işle alakalı olduğunu düşünmüyorum. Dinamik verileri yine dinamik olarak çekebilmeniz için sitenin JavaScript kodlarına erişim sağlamanıza veya içindeki herhangi bir şeyi görmenize gerek yok. JavaScript zaten dinamik olarak HTML'i veya CSS'i değiştirecektir. Sizin tek yapmanız gereken şey, HTML tag'larının içindeki verilere veya CSS stillerine erişmeniz ki Selenium ile bu yine mümkün (çoklu siteler üzerinde de).

Ayrıca çok vaktim olmadığı için sosyali ancak akşamdan akşama kontrol edebiliyorum, kusura bakmayın.
 
Selenium, bilgisayarınızda kullandığınız web tarayıcısı üzerinde yapabileceğiniz neredeyse her şeyi yapmak üzerine tasarlanmıştır çünkü genel kullanım amacı web uygulamalarını her yönden test etmektir. Dolayısıyla çalışan bir kodda nasıl tarayıcınızda birçok sekme açabiliyorsanız Selenium'da da birden fazla sekme kullanabilirsiniz ve aralarında düzenli olarak geçiş yapıp istediğiniz verileri bulabilir hatta sitelerle aynı kendi tarayıcınızda etkileşime giriyormuşçasına etkileşime girebilirsiniz. Arada değiştirmeniz gereken tek şey, farklı sitelerde istediğiniz farklı bölümlerdeki veriler için farklı navigasyon kodları (örneğin farklı XPath ifadeleri) yazmak olacaktır. Selenium kullandığınız takdirde verilerin değişken olması önemli değil çünkü yaptığı şey bir web tarayıcısı açmak olduğu için değişen verilere her zaman erişebilirsiniz. Sadece gerekli XPath, CSSSelector vb. kodları oluşturmanız. Çok fazla gereksiz kod kalabalığı yapmadan farklı sitelerle aynı kod üzerinde uğraşmanız pekâlâ mümkün. Eriştiğiniz sitelerdeki js kodlarının yapacağınız işle alakalı olduğunu düşünmüyorum. Dinamik verileri yine dinamik olarak çekebilmeniz için sitenin JavaScript kodlarına erişim sağlamanıza veya içindeki herhangi bir şeyi görmenize gerek yok. JavaScript zaten dinamik olarak HTML'i veya CSS'i değiştirecektir. Sizin tek yapmanız gereken şey, HTML tag'larının içindeki verilere veya CSS stillerine erişmeniz ki Selenium ile bu yine mümkün (çoklu siteler üzerinde de).

Ayrıca çok vaktim olmadığı için sosyali ancak akşamdan akşama kontrol edebiliyorum, kusura bakmayın.
Pytesseract (Tesseract OCR) not picking up some numbers
hocam bu sitede çözümü var, hatta tesseracttaki %20' lik hata payını konuyu açan arkadaş %5'e düşürmüş. Sonrasında bir kişi çözüm sunmuş. Ama yazılımdan anlamadığım için orada ne yazdığını ve nerenin değiştirilmesi gerektiğini anlamadım. Bu 2 (hata payı %5 ve çözüm) kodu benim yazılıma nasıl eklerdiniz? Ayrıca arkadaş aşağıda
Kod:
-
bir değeri
Kod:
0
yaparak tüm sorunu hallettiğinden bahsetmiş.
@UmutCan01 hocam ben şuan sorunu çözdüm okumayı yaptırabiliyorum. Her zaman doğru sonuç vermiyor ama bunuda çözmeye çalışıyorum.
Şimdi ben bu yazılıma birden fazla alanı taratmak istiyorum. Çünkü tek bir alanı düzgün okuyamıyor. Tüm bunları aynı anda okuması için herhangi bir kaynak var mı veya nasıl yapılabilir
 
Son düzenleme:
Ekran görüntüsünü aldıktan sonra istediğiniz alanları seçtirebilirsiniz, daha sonra her alan için aynı uygulamayı tekrarlayabilirsiniz.
 
Peki hocam kaynak verebilir misiniz?
Birde bunun yerine birden fazla koordinat belirlesek olur mu? Bununda kaynağı varsa paylaşır mısınız?
Yada hocam bu iş uzarsa diye söylüyorum bana ayriyeten hazır olarak bulunan, web sitelerinin belirli dinamik(tıklama gerektiriyor, tıklama yapması da lazım sitede) bölgelerinden veri çekebileceğim bir kaynağınız var mı?
@UmutCan01
 
Son düzenleme:

Yeni konular

Geri
Yukarı