Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 30.03.2020
Сообщений: 5

Люди гляньте что не так Не могу понять почему программа не издает звук когда открываю картинку. Она должна видеть экран

23.01.2024, 02:53. Показов 903. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Написал программу. Она должна видеть экран и воспроизводить звук когда видит заранее указанную картинку. Но звук не проигрывает. При этом запускается.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import pyautogui
import cv2
import numpy as np
import winsound
 
image_path = "image.png"
 
sound_path = "sound.wav"
 
image = cv2.imread(image_path)
 
threshold = 8.8
 
image_height, image_width, _ = image.shape
 
while True:screenshot = pyautogui.screenshot()
 
# Преобразуем скриншот и фрагмент изображения в массивы numpy
screenshot_np = np.array(screenshot)
screenshot_np = cv2.cvtColor(screenshot_np, cv2.COLOR_BGR2GRAY)
 
image_np = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
 
# Ищем фрагмент изображения на скриншоте
result = cv2.matchTemplate(screenshot_np, image_np, cv2.TM_CCOEFF_NORMED)
 
# Получаем координаты верхнего левого угла найденного фрагмента
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
 
# Проверяем, превышает ли совпадение пороговое значение
if max_val >= threshold:
    print("Фрагмент найден!")
    
    # Проигрываем звуковой файл
    winsound.PlaySound(sound_path, winsound.SND_ASYNC)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.01.2024, 02:53
Ответы с готовыми решениями:

Ребят! Гляньте код не могу понять что с ним не так
у меня есть функция, в случае ошибки она должна возвращать эту ошибку. Но ошибка возвращается только если неверном формате файла ($errors...

когда я открываю флешку, она просит, что надо форматировать ее
Короче когда я открываю флешку она просить что надо форматировать ее!! http://i005.***********/1004/63/b8ce622adc2f.jpg но когда я...

Не могу понять где ошибка в массиве, и почему программа работает не так
Здравствуйте! У меня есть программа, она сейчас работает так: 1 начинаем работу 2 смотрим что построено - ( не построено основание,...

3
Любознательный
 Аватар для YuS_2
7406 / 2256 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
23.01.2024, 07:49
Цитата Сообщение от Nedeni2772 Посмотреть сообщение
Написал программу.
Что, вот так вот взял и написал... самостоятельно?
А это что:
Цитата Сообщение от Nedeni2772 Посмотреть сообщение
Python
1
while True:screenshot = pyautogui.screenshot()
- можете описать, что здесь происходит? Если нет... изучите, для начала, основы программирования...
2
0 / 0 / 0
Регистрация: 30.03.2020
Сообщений: 5
23.01.2024, 11:29  [ТС]
Ну чучуть шарю. Можете пожалуйста просто подсказать как это исправить.

Добавлено через 2 минуты
По идеи этот цикл отвечающий за запись скриншота для анализа изображения

Добавлено через 5 минут
Понятно ведь что я в этом мало понимаю. Поэтому на форум сюда пришел.
0
 Аватар для CopBuroJLoBa
150 / 132 / 53
Регистрация: 03.01.2017
Сообщений: 472
23.01.2024, 11:56
Лучший ответ Сообщение было отмечено Nedeni2772 как решение

Решение

Так запустилось, GPT исправил ваш код.
Цитата Сообщение от GPT Посмотреть сообщение
В вашем коде присутствует ошибка в цикле while True:. У вас не указан блок для этого цикла, и отсутствует отступ перед строкой screenshot = pyautogui.screenshot(). Используйте отступ для указания тела цикла. Кроме того, рекомендуется оборачивать код, выполняемый внутри цикла, в блок try-except для обработки возможных исключений. Вот исправленный код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import pyautogui
import cv2
import numpy as np
import winsound
import time
 
image_path = "image.png"
sound_path = "helicopter-helicopter-parakofer-parakofer.wav"
#sound_path = "sound.wav"
image = cv2.imread(image_path)
threshold = 0.8  # Уточните значение порога для вашего случая
 
while True:
    try:
        screenshot = pyautogui.screenshot()
 
        # Преобразуем скриншот и фрагмент изображения в массивы numpy
        screenshot_np = np.array(screenshot)
        screenshot_np = cv2.cvtColor(screenshot_np, cv2.COLOR_BGR2GRAY)
 
        image_np = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
 
        # Ищем фрагмент изображения на скриншоте
        result = cv2.matchTemplate(screenshot_np, image_np, cv2.TM_CCOEFF_NORMED)
 
        # Получаем координаты верхнего левого угла найденного фрагмента
        min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
 
        # Проверяем, превышает ли совпадение пороговое значение
        if max_val >= threshold:
            print("Фрагмент найден!")
 
            # Проигрываем звуковой файл
            winsound.PlaySound(sound_path, winsound.SND_ASYNC)
 
            time.sleep(3)
    except Exception as e:
        print(f"Ошибка: {e}")
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.01.2024, 11:56
Помогаю со студенческими работами здесь

Не могу понять, почему программа работает неправильно( Знаю, что где-то ошибки, но не могу найти
{Ввести последовательность натуральных чисел Aj j=1...n (n<=1000). Упорядочить последовательность по неубыванию наименььшей цифры...

Что не так с вызовом функции? Пишет ошибку, не могу понять почему
package g6_upr4_clas_test; class Test{ int a; Test (int i){ a = i; } void swap(Test ob1, Test ob2){ int x;

Подскажите как наложить картинку на картинку так что бы она была резиновая
<div class="right"> <div class="bg"> <img src="img/bg.jpg" alt=""> ...

Подскажите почему не выводиться итоговое число , не могу понять что не так сделала
1. Дано натуральное число N. Получить число M, записанное теми же цифрами в обратном порядке. #include "stdafx.h" ...

Программа, когда вводишь годы, она должна ставить правильное окончание!?
Т.е. если ввел 20 - она должна написать "Двадцать лет", если 23 - "Двацать три года", 40 - "Сорок лет", и т.д. и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru