Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 31.01.2016
Сообщений: 23

Выход за пределы массива

21.04.2020, 22:45. Показов 1519. Ответов 1

Студворк — интернет-сервис помощи студентам
При работе с цветными изображениеми появляется выход за пределы массива. С черно-белыми такого не происходит. В чем может быть ошибка?

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
39
40
41
42
43
44
45
46
import cv2
from math import sin,pi,floor
import numpy as np
from time import time
def chirikov(x):
    height,width=len(x),len(x[0])
    n=height
    K=10000000 #this parameter acts as the key.
    newarray=np.zeros((height,width))
    newarray[0][0]=x[0][0]
    for i in range(height):
        for j in range(width):
            if (i+j)!=0:
                xnew=(i-1+j-1)%n
                ynew=(floor(j-1+K*sin(2*pi*xnew/n)))%n
                newarray[xnew][ynew]=x[i][j]
    for i in range(height):
        for j in range(width):
            x[i][j]=newarray[i][j]
    return x
 
def chirikovdec(x): #the decryption function
    height,width=len(x),len(x[0])
    n=height
    K=10000000#this parameter has to be equal 
    newarray=np.zeros((height,width))
    newarray[0][0]=x[0][0]
    for i in range(height):
        for j in range(width):
            if (i+j)!=0:
                xnew=(floor(i-j+K*sin(2*pi*(i)/n)))%n
                ynew=(floor(j-K*sin(2*pi*(i)/n)))%n
                newarray[xnew][ynew]=x[i][j]
    for i in range(height):
        for j in range(width):
            x[i][j]=newarray[i][j]
    return x
 
if __name__=="__main__":
    x=cv2.imread("test.jpg",0)
  #  x=cv2.imread("test.jpg",1)
#0-для черно-белых 1-для цветных
    x=chirikov(x)
    cv2.imwrite("output_Chaos.jpg",x)
    #cv2.imwrite("output_Chaos_decrypted.jpg",x)
    #cv2.imwrite("Output",x)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.04.2020, 22:45
Ответы с готовыми решениями:

Выход за пределы массива
В 7 строке выдает ошибку выхода за пределы массива. Никак не могу понять в чем ошибка def kvadrat(size): width=cell/(size*size*4) ...

Выход За пределы диапазона
import pygame pygame.init() win=pygame.display.set_mode((1024, 474)) pygame.display.set_caption("game") walkright = ...

Подскажите в чем ошибка, ошибка выход за пределы списка
на седьмой строке ошибка не понимаю в чем import random list1 = def useless(list1): print('Vedite skolko chisel v spiske:...

1
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
22.04.2020, 04:14
Лучший ответ Сообщение было отмечено paul_sud как решение

Решение

Цитата Сообщение от paul_sud Посмотреть сообщение
При работе с цветными изображениеми появляется выход за пределы массива.
Из черно-белых изображений получаются двухмерные массивы, а из цветных трехмерные, нужно добавить проверку

Python
1
2
3
4
5
6
if(len(x.shape) == 3):
        newarray=np.zeros((height,width, 3))
        newarray[0][0]=x[0][0]
    else:
        newarray=np.zeros((height,width))
        newarray[0][0]=x[0][0]
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.04.2020, 04:14
Помогаю со студенческими работами здесь

Выход за пределы массива
Заполняю динамический массив случайными числами и вывожу его на экран. Дебажная куча жалуется на использование чужой памяти. Не могу найти...

Выход за пределы массива
Программа должна находить последнюю строку матрицы, в которой все символы одинаковы. Проблема в том, что она выходит за пределы как...

Выход за пределы массива
По мойму нарушение границ массива в c++ не допускается. Это будет выход за пределы массива и попытка записать элемент в какуюто другую...

Выход за пределы массива
Здравствуйте!Мне нужно написать программу,которая считает количество очков по сбитым кеглям,но есть проблема - выход за границы массива ...

Выход за пределы массива
Выдает ошибку "Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8" в строке, подскажите пожалуйста, в чем может быть...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru