Страница 4 из 5
Re: Python - графика
Добавлено: 28 ноя 2015, 14:01
Lepton
OpenCV-Python
Wikipedia: OpenCV (Open Computer Vision Library) - библиотека алгоритмов компьютерного зрения,
обработки изображений и численных алгоритмов общего назначения с открытым исходным кодом.
Пример обнаружения объектов на изображении:
(выполнено эксклюзивно для seocod.ru)
Код: Выделить всё
#!/usr/bin/python
# -*- coding: utf-8 -*-
import cv2
import numpy as np
import sys
scf = 1.30
scfact = 1.00
color = (0,0,255)
strokeWeight = 3
cascade = cv2.CascadeClassifier('haarcascade_breast.xml')
cv2.namedWindow('Censored',cv2.WINDOW_NORMAL)
if len(sys.argv) != 2:
print "No input image given. Correct Usage : python CensorBreast.py <filename> \n"
raise SystemExit(1)
filename = sys.argv[1]
def nothing(*argv):
pass
def trackbar():
global scfact
r = cv2.getTrackbarPos('BreastDet','Censored')
scfact = 1.07+0.01*r
return scfact
def update():
img = cv2.imread(filename)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
rects = cascade.detectMultiScale(gray, scfact, 2)
for (x,y,w,h) in rects:
cv2.rectangle(img, (x,y), (x+w,y+h), color, -1)
cv2.rectangle(img, (x,y), (x+w,y+h), (0,255,0), strokeWeight)
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'ScaleFactor:'+str(scfact),(10,30), font, 1,(255,0,0),2,cv2.LINE_AA)
cv2.imshow('Censored',img)
cv2.createTrackbar('BreastDet','Censored',0,50,nothing)
while (1):
k = cv2.waitKey(25) & 0xFF
if k == 27:
break
trackbar()
if scf == scfact:
pass
else:
update()
scf = scfact
cv2.destroyAllWindows()
Re: Python - графика
Добавлено: 07 фев 2016, 02:30
LanuHum
Когда пытался писать на питоне 2, лучшим считал wxPython. Очень долго Феникс возрождался из пепла. wxPhoenix - это wx на третьем питоне. Ещё поглюкивает, и, нет функции getpixel, что не позволило мне использовать его для написания утилитки к Поврею, создающей градиенты с пятью параметрами: RGBFT. Пришлось использовать pyQt4. Тоже глючит, когда дело касается графики в графике. Я это о том, что одно дело графическое приложение, а, другое дело, когда графическое приложение для работы с графикой 2D. Tkinter для этого не годится, хотя, можно поизвращаться. Qt очень трудно работает с альфой,оставляя артефакты, если изменения производятся по событиям мыши. Приходится конвертировать QPixmap в QImage, QImage в QBitmap, QBitmap в QPixmap и так далее. У wx такого не наблюдал - GC (graphic context) там работает чётко, и Cairo в wx - это тоже хорошо.
Re: Python - графика
Добавлено: 07 фев 2016, 15:41
Olej
LanuHum писал(а):Когда пытался писать на питоне 2, лучшим считал wxPython. Очень долго Феникс возрождался из пепла. wxPhoenix - это wx на третьем питоне.
Могу заметить к вашему тексту только следующее (остальных описываемых деталей я не знаю):
- обратили ли вы внимание на то событие (в мире Python), которое произошло в конце прошлого года (в конце ноября)?
- а именно то, что вышла Fedora 23, в которой дефаултной версией объявлен Python3 (с заменой наконец yum на dnf)
- а поскольку на сегодня
всё развитие и программного кода и состава и тенденций Linux идёт исключительно в линии (и силами) RedHat (ну ещё чуть-чуть в OpenSUSE, но похоже что это заканчивается), а остальные дистрибутивы только бесстыже заимствуют оттуда, то это означает полный и бесповоротный конец Python 2 и скорый повсеместный переход на Python 3.
Re: Python - графика
Добавлено: 07 фев 2016, 18:17
LanuHum
Olej писал(а):LanuHum писал(а):Когда пытался писать на питоне 2, лучшим считал wxPython. Очень долго Феникс возрождался из пепла. wxPhoenix - это wx на третьем питоне.
Могу заметить к вашему тексту только следующее (остальных описываемых деталей я не знаю):
- обратили ли вы внимание на то событие (в мире Python), которое произошло в конце прошлого года (в конце ноября)?
- а именно то, что вышла Fedora 23, в которой дефаултной версией объявлен Python3 (с заменой наконец yum на dnf)
- а поскольку на сегодня
всё развитие и программного кода и состава и тенденций Linux идёт исключительно в линии (и силами) RedHat (ну ещё чуть-чуть в OpenSUSE, но похоже что это заканчивается), а остальные дистрибутивы только бесстыже заимствуют оттуда, то это означает полный и бесповоротный конец Python 2 и скорый повсеместный переход на Python 3.
Намного ранее, я читал, что очередной релиз OpenMandriva выйдет с питоном 3 по умолчанию.
OpenMandriva Lx 3 Pre-Alpha - DistroWatch.com
distrowatch.com/8798
Перевести эту страницу
4 февр. 2015 г. - From the release announcement: "Pre-alpha OpenMandriva Lx 3 is here. ... using Python 3 as the default Python interpreter and the distribution ...
Вообще, есть какая-то связь между Федорой и Мандривой, о которой нигде не говорится. Я это вижу, когда пересобираю федорин rpms пакет для мандривы\магеи. Никто ни на что не ругается, то есть, одни и те же скрипты используются...
Я не считаю это большой радостью, ибо ведущие программы линукса вряд ли уже готовы юзать python 3. GIMP, Inkscape, FontForge... Если эти программы подлатают свои биндинги под третий питон - появится реальное поле для творчества.
В своём экспортёре я использовал fontforge для создания объектов из кривых, представляемых как некий шрифт. Поврей принимал эти объекты как шрифты, и, соответственно, обрабатывал их делая скосы, скругления, отсечения. Прикольная была фишка, но из-за второго питона вызывалась через subprocess, что ни есть гуд.
Я один из тех немногих, которых интересует нечто немодное ныне. Мне интересна компьютерная графика ни как общее устремление профи к пределам ферм для создания супер-пупер эффектов, которые на десктопе создать, практически, невозможно. Я, просто рад тому, что могу создать на десктопе в свободное от работы время.
Re: Python - графика
Добавлено: 07 фев 2016, 23:30
LanuHum
Olej, надеюсь, что ты понял, что был обманут. Федора не является законодателем в линуксе. Более, чем полгода ранее о переходе на питон 3 объявила Мандрива. Линуксом движет Мандрива, вернее, сообщество, которое себя ассоциирует с этим именем: Mandrake. Это самые крутые перцы ныне на Земле в области дарить людям безвозмездно, и, я их уважаю. Несмотря на финансовые трудности, именно, они рисуют карту пути линукса. Именно, поэтому моим линуксом будет Mandrake, как бы он теперь не назывался: Rosa, Mageia, OpenMandriva, или ещё как. Главное, что устанавливаешь дистибутив, и, видишь, что ты пришёл домой.
Очень люблю читать мнения на хабре. Там видно, кто оплачен, а кто от чистого сердца. И, кто от чистого сердца, тот ругает GTK, тех, кто им потокает, кто в ограниченных возможностях видит звёзды и путь к ним. Типа tkinter лучший! Худший он, самый худший из всех худых. Нельзя нарисовать звёзды веником.
Re: Python - графика
Добавлено: 08 фев 2016, 00:01
LanuHum
А, вот здесь я родился и вырос:
Пять лет я ходил из нижнего левого угла в центр картинки, чтобы играть на домре в музыкальной школе...И, мысль о том, что я там больше никогда не пройдусь - самая печальная из всех мыслей
, ведь, когда я сделал туда первый шаг, мне было всего шесть лет. А теперь мне 50. Haskell отдыхает...
Re: Python - графика
Добавлено: 26 мар 2016, 15:02
Lepton
Wrapper Python-Allegro (Allegro-5.1.13.1)
http://liballeg.org/
Аллегро - кроссплатформенная библиотека для создания игр и мультимедиа приложений
1. Создания окна
2. Ввод даных с различных устройств
3. Загрузка ресурсов
4. Рисование изображений
5. Проигрывание звуков
6. Шейдеры
7. Поддержка 3D
Код: Выделить всё
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from allegro import *
import os
FPS = 60
SCREEN_W = 640
SCREEN_H = 480
BOUNCER_SIZE = 32
def main():
done = False
redraw = True
bouncer_x = SCREEN_W / 2.0 - BOUNCER_SIZE / 2.0
bouncer_y = SCREEN_H / 2.0 - BOUNCER_SIZE / 2.0
bouncer_dx = -4.0
bouncer_dy = 4.0
if not al_install_system(ALLEGRO_VERSION_INT, None):
abort_example("Failed to init Allegro.\n")
sys.exit(1)
al_init_font_addon()
al_init_ttf_addon()
font = al_load_ttf_font("font.ttf",72,0 )
timer = al_create_timer(1.0 / FPS)
display = al_create_display(SCREEN_W, SCREEN_H)
bouncer = al_create_bitmap(BOUNCER_SIZE, BOUNCER_SIZE)
al_set_target_bitmap(bouncer)
al_clear_to_color(al_map_rgb(255, 0, 255))
al_set_target_bitmap(al_get_backbuffer(display))
event_queue = al_create_event_queue()
al_register_event_source(event_queue, al_get_display_event_source(display))
al_register_event_source(event_queue, al_get_timer_event_source(timer))
al_clear_to_color(al_map_rgb(0,255,0))
al_flip_display()
al_start_timer(timer)
while not done:
event = ALLEGRO_EVENT()
al_wait_for_event(event_queue, byref(event))
if event.type == ALLEGRO_EVENT_TIMER:
if (bouncer_x < 0 or bouncer_x > SCREEN_W - BOUNCER_SIZE):
bouncer_dx = -bouncer_dx
if (bouncer_y < 0 or bouncer_y > SCREEN_H - BOUNCER_SIZE):
bouncer_dy = -bouncer_dy
bouncer_x += bouncer_dx
bouncer_y += bouncer_dy
redraw = True
elif event.type == ALLEGRO_EVENT_DISPLAY_CLOSE:
done = True
if (redraw and al_is_event_queue_empty(event_queue)):
redraw = False
al_clear_to_color(al_map_rgb(0,255,0))
al_draw_text(font, al_map_rgb(255,25,25), 640/2, 480/2.5,ALLEGRO_ALIGN_CENTRE, "Hello Allegro 5!")
al_draw_rectangle(10.0, 10.0, 630.0, 470.0, al_map_rgb(0, 0, 255), 5.0)
al_draw_bitmap(bouncer, bouncer_x, bouncer_y, 0)
al_flip_display()
al_destroy_bitmap(bouncer)
al_destroy_timer(timer)
al_destroy_display(display)
al_destroy_event_queue(event_queue)
al_uninstall_system()
al_main(main)
Re: Python - графика
Добавлено: 21 ноя 2017, 18:00
Olej
Olej писал(а):И говоря о графике Python, совершенно нельзя не упомнить
Reinteract - совершенно прелестнейшая штучка:
Возникла необходимость, попытался проверить что там делается, использовать Reinteract ...
Код: Выделить всё
[olej@dell ~]$ uname -a
Linux dell.localdomain 4.8.14-100.fc23.x86_64 #1 SMP Mon Dec 12 20:52:15 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Код: Выделить всё
[olej@dell analys]$ dnf list reinteract*
Последняя проверка окончания срока действия метаданных: 13 days, 22:17:51 назад, Tue Nov 7 18:04:00 2017.
Доступные пакеты
reinteract.noarch 0.5.9-11 fedora
Код: Выделить всё
[olej@dell analys]$ udo dnf install reinteract
bash: udo: команда не найдена
[olej@dell analys]$ sudo dnf install reinteract
[sudo] пароль для olej:
Зависимости разрешены.
=========================================================================================================================================
Package Архитектура Версия Репозиторий Размер
=========================================================================================================================================
Установка:
pyparsing noarch 2.1.5-1.fc23 updates 11 k
python-dateutil noarch 1:2.4.2-2.fc23 fedora 88 k
python2-matplotlib x86_64 1.4.3-14.fc23 updates 35 M
python2-matplotlib-tk x86_64 1.4.3-14.fc23 updates 80 k
python2-pyparsing noarch 2.1.5-1.fc23 updates 118 k
pytz noarch 2015.4-1.fc23 fedora 60 k
reinteract noarch 0.5.9-11 fedora 305 k
Результат операции
=========================================================================================================================================
Установка 7 Пакетов
Объем загрузки: 36 M
Объем изменений: 67 M
Продолжить? [д/Н]: y
Загрузка пакетов:
(1/7): python2-matplotlib-tk-1.4.3-14.fc23.x86_64.rpm 176 kB/s | 80 kB 00:00
(2/7): python-dateutil-2.4.2-2.fc23.noarch.rpm 457 kB/s | 88 kB 00:00
(3/7): reinteract-0.5.9-11.noarch.rpm 465 kB/s | 305 kB 00:00
(4/7): pyparsing-2.1.5-1.fc23.noarch.rpm 72 kB/s | 11 kB 00:00
(5/7): pytz-2015.4-1.fc23.noarch.rpm 314 kB/s | 60 kB 00:00
(6/7): python2-pyparsing-2.1.5-1.fc23.noarch.rpm 599 kB/s | 118 kB 00:00
(7/7): python2-matplotlib-1.4.3-14.fc23.x86_64.rpm 2.7 MB/s | 35 MB 00:13
-----------------------------------------------------------------------------------------------------------------------------------------
Общий размер 2.5 MB/s | 36 MB 00:14
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно
Выполнение транзакции
Установка : python2-pyparsing-2.1.5-1.fc23.noarch 1/7
Установка : pyparsing-2.1.5-1.fc23.noarch 2/7
Установка : pytz-2015.4-1.fc23.noarch 3/7
Установка : python-dateutil-1:2.4.2-2.fc23.noarch 4/7
Установка : python2-matplotlib-tk-1.4.3-14.fc23.x86_64 5/7
Установка : python2-matplotlib-1.4.3-14.fc23.x86_64 6/7
Установка : reinteract-0.5.9-11.noarch 7/7
Проверка : reinteract-0.5.9-11.noarch 1/7
Проверка : python2-matplotlib-1.4.3-14.fc23.x86_64 2/7
Проверка : python2-matplotlib-tk-1.4.3-14.fc23.x86_64 3/7
Проверка : python-dateutil-1:2.4.2-2.fc23.noarch 4/7
Проверка : pytz-2015.4-1.fc23.noarch 5/7
Проверка : pyparsing-2.1.5-1.fc23.noarch 6/7
Проверка : python2-pyparsing-2.1.5-1.fc23.noarch 7/7
Установлено:
pyparsing.noarch 2.1.5-1.fc23 python-dateutil.noarch 1:2.4.2-2.fc23 python2-matplotlib.x86_64 1.4.3-14.fc23
python2-matplotlib-tk.x86_64 1.4.3-14.fc23 python2-pyparsing.noarch 2.1.5-1.fc23 pytz.noarch 2015.4-1.fc23
reinteract.noarch 0.5.9-11
Выполнено!
- re1.png (19.52 КБ) 4021 просмотр
Но как следует из следующей картинке, всё что с графикой, всё в Reinteract, который из репозитория -
сломалось :
Re: Python - графика
Добавлено: 21 ноя 2017, 18:06
Olej
Olej писал(а):
Но как следует из следующей картинке, всё что с графикой, всё в Reinteract, который из репозитория -
сломалось :
re3.png
На
сайте проекта Reinteract последней обозначена версия:
29 Oct 2011 - Reinteract 0.5.9 released
Это она в репозитории и есть.
Похоже, что приятный было проект Reinteract - приказал долго жить.
Re: Python - графика
Добавлено: 29 дек 2017, 01:10
Olej
Хороший
кратенький обзор практического использования графики:
Научная графика в Python.
Автор: Шабанов Павел Александрович
Дата последнего обновления: 11.03.2017
Показываются понятные примеры программного кода + та
как это выглядит на графических картинках.
- img1.png (90.53 КБ) 3919 просмотров
Это очень удобно, когда нужно
по быстрому продемонстрировать результаты своих вычислений.