Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2022, 12:47   #1
himecu
Пользователь
 
Регистрация: 09.12.2021
Сообщений: 32
По умолчанию Градационные алгоритмы обработки изображения

вот файл с условием лабораторной Помогите пожалуйста реализовать пункт Кусочно-линейное преобразование с задаваемыми узловыми точками (r1,s1),(r2,s2),не получается пройти циклом for по всему изображению и как сделать так, чтобы переменная r отвечала за один из компонентов пикселя?
#сам код
Лабораторная_img_2.pdf
Код:
import cv2
import numpy as np
from google.colab import drive
drive.mount("/content/drive")
img=cv2.imread('./drive/MyDrive/python/lab 2/sun.jpg')
#задание 1 логарифмическое преобразование
img[img==255]=254 # делаем такое преобразование, чтобы 0 не попал под логарифм
img2=np.asarray(np.rint(255*np.log(1+img)/np.log(255)),dtype=np.uint8)
cv2.imwrite('./drive/My Drive/python/lab 2/sun_log.jpg',img2)#результат логарифмического преобразования
#задание 2 переход к негативу
img3=np.asarray(np.rint(255-img),dtype=np.uint8)#переход к негативу
cv2.imwrite('./drive/My Drive/python/lab 2/sun_negative.jpg',img3)#результат перехода негатива
#Для различных значений параметра применить степенное преобразование
Y=float(input("enter Y="))
if 0<Y<1:
  print("параметр γ →0, то результирующее изображение будет становитьсявсе светлее и светлее")
elif 1<Y<2:
  print("При γ>1в области черного цвета будет наблюдаться понижение контрастности, а в области белого цвета – ее увеличение.")
elif Y>1:
  print("параметр γ →+∞, то изображения будут темнеть, превращаясь в пределе в черное.")
else:
  print("данный случай не рассматривается!")
img4=np.asarray(np.rint(pow(img,Y)/pow(255,Y-1)),dtype=np.uint8)#переход к негативу
cv2.imwrite('./drive/My Drive/python/lab 2/sun_stepen.jpg',img4)
#Кусочно-линейное преобразование с задаваемыми узловыми точками (r1,s1),(r2,s2)
#в этой частик кода требуется помощь
r1=float(input("enter r1="))
r2=float(input("enter r2="))
s1=float(input("enter s1="))
s2=float(input("enter s2="))
for r in range(0,255):#help me here!
  if 0<=r<=r1:
    s_1=np.asarray(np.rint(s1/r1),dtype=np.uint8)
    cv2.imwrite('./drive/My Drive/python/lab 2/s_1.jpg',s_1)
himecu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритмы обработки массивов GregTar C++ Builder 3 17.07.2014 23:30
Алгоритмы обработки данных nikita-92 C# (си шарп) 0 11.04.2013 00:35
Алгоритмы обработки изображений xripunov Помощь студентам 4 24.08.2011 18:39
Алгоритмы обработки файлов Troilk Помощь студентам 0 15.03.2011 02:21
Структуры и алгоритмы обработки данных ]tach[ Помощь студентам 3 19.01.2011 13:34