Картины из ниток: официальный сайт производителя картины из нитей по фотографии RingString

Отзывы о картине из нитей RingString

Отзывы о картине из нитей RingString Ресурс 1

ВАШ ГОРОД — МОСКВА

Да выбрать другой

От выбранного города зависят сроки доставки

×

ВВЕДИТЕ ГОРОД

СПАСИБО! ВАШ ОТЗЫВ ОТПРАВЛЕН НА МОДЕРАЦИЮ

×

Имя*

E-MAIL

Текст отзыва*

Изображения

Ксюша

Набор потрясающий, я не могла остановиться. Почти собрала за первый вечер, но в 4 утра сдалась. Следующим вечером завершила начатое. Буду покупать еще на подарки. А может даже соберу еще одну сама.

Марина

Получив набор в подарок, я не поверила что из ниток получится такая детализированная картинка. Выбирали с сыном фотографию долго, не все удачно подходили. Но итоговый результат — ЭТО ПОТРЯСАЮЩЕ! Выбираю куда повесить, и там хочу и там хочу =)

Хлоя

Я просто в восторге от процесса создания картины. Это отдельный вид медитации и релакса. Невозможно остановиться, хочется продолжать снова и снова. А результат получился фантастическим! Очень стильная и элегантная деталь интерьера

Елизавета

Отлично провела время за плетением картины! Большое спасибо команде Ringstring за интересный и качественный продукт, все отлично сделано и продуманно. Теперь хочется подарить такую картину всем родным и близким, обязательно буду покупать на подарки )

Инесса

Очень приятно было получить подарок, сделанный руками любимого мужчины☺️ Выглядит очень стильно и впишется в любой интерьер.

Эльвира

Как только увидела этот набор, поняла, надо брать! Очень медитативный, увлекательный процесс создания картины. Подбор фотографии занимает много времени для получения отменного результата, одно фото пришлось прогонять несколько раз, ибо итоговая картинка меняется. Онлайн помощник выше всяких похвал, качественный и продуманный сервис, да и материалы все на высоте. Спасибо RingString за часы отдыха в удовольствие.

Юлия

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

Екатерина

Невероятно!!! Получила большое удовольствие от процесса: медитация во время сборки + оригинальная стильная картина за 4 часа! Отличный вариант для подарка друзьям

Maxim

Отличный подарок! Порадует всех: получателя своей необычностью, а «изготовителя» — медитативным процессом

Анна

Всегда мечтала получить портрет. Это такое увлекательное волшебство , красота своими руками. Спасибо создателям , очень понравилось !!!!!

Екатерина

Картина получилась шикарная, далась легко. Понравилась техника. Советую.

Любовь

Узнала об этом наборе у блогера и сразу для себя решила, что хочу это сделать. Это просто что то потрясающее. Собирала около 8 часов. Сделала картину для своего сына и его девушки на день рождения. Спасибо!

Лилия

Прекрасная картина. Давно хотела такую, но не знала где найти. Попалась случайно.
Собираем портрет с 2х дня и до 11 вечера, с перерывами. Получила огромное удовольствие при сборке. Очень увлекательное занятие. Слов нет, одни восторги.

Спасибо вам, что помогаете осуществить мечту. Дарите радость и любовь.

Катерина

Спасибо RingString за приятно проведённый вечер 🙂 Отличная картина получилась!
Процесс очень занимательный. И приложение удобное с приятным музыкальным сопровождением.
Жаль что финишировала так быстро))

Юлия

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

Герман

3500 шагов, 8 часов времени и шикарный подарок для жены готов! Спасибо разработчикам, второй раз собирать такое я не отважусь, но в качестве подарка для знакомых рукодельников, возможно, ещё куплю)

Анна

Спасибо за картину, буду заказывать еще!

Маргарита

Результат потрясающий! Решила сделать подарок супругу на наше 30-летие со дня свадьбы. Уверена — он будет весьма впечатлён!!!! ❤️

Надежда

Очень интересно, очень ново, необычно, увлекательно. Невозможно остановиться. Я в восторге!

Инна

Собрала несколько рисунков, очень расслабляет, понравилась концепция и процесс)

Техника изготовления картин из ниток (String Art) на OpenCV – RoboCraft


На региональном новостном сайте увидел новость: «Янтарному подарили портрет Канта из 5 километров ниток» и заинтересовался — как же подобные картины делаются.

Оказалось, что подобная техника называется String Art и сразу же нашлись самые разные варианты изготовления подобных картин.
Как вручную:

, так и автоматически — при помощи самых разных станков:

Осталось разобраться — как же это делается программно.
По счастливому стечению обстоятельств на глаза попалась статья: Круглые картины из натянутых ниток. Разоблачение, которая и подсказала, что в основе лежит простой алгоритм, состоящий из следующих основных этапов:
1. предварительная обработка изображения: изображение переводится в градации серого, обрезается в квадрат, вписывается в круг и инвертируется в негатив.
2. процедура определения, где нужно провести линию: алгоритм в цикле перебирает все варианты проведения линии от одной точки ко всем остальны точкам, чтобы найти такой вариант, который даёт наиболее подходящее затенение.

3. генерация кодов управления станком ЧПУ: зная какие линии нужно провести для данного изображения — генерируются соответствующие команды для станка, который будет выполнять автоматическое натягивания нити по заданным координатам.

К сожалению, код который приводится в статье сразу не заработал, зато на гитхабе быстро нашёлся готовый вариант на Python и OpenCV: string-art/alog2.py

Всё реализовано довольно просто:

import cv2
import numpy as np
imgPath = './cat4.jpg' # My Cheshire Cat
# Parameters
imgRadius = 200     # Number of pixels that the image radius is resized to
initPin = 0         # Initial pin to start threading from
numPins = 200       # Number of pins on the circular loom
numLines = 500      # Maximal number of lines
minLoop = 3         # Disallow loops of less than minLoop lines
lineWidth = 3       # The number of pixels that represents the width of a thread
lineWeight = 15     # The weight a single thread has in terms of "darkness"

— подключаются нужные библиотеки и задаются соответствующие параметры, включая имя изображения, подлежащего преобразованию:

Задаются вспомогательные функции, которые реализуют предварительную обработку изображения — обрезки до круга и инвертирования:

# Invert grayscale image
def invertImage(image):
    return (255-image)
# Apply circular mask to image
def maskImage(image, radius):
    y, x = np.
ogrid[-radius:radius + 1, -radius:radius + 1] mask = x**2 + y**2 > radius**2 image[mask] = 0 return image # Compute coordinates of loom pins def pinCoords(radius, numPins=200, offset=0, x0=None, y0=None): alpha = np.linspace(0 + offset, 2*np.pi + offset, numPins + 1) if (x0 == None) or (y0 == None): x0 = radius + 1 y0 = radius + 1 coords = [] for angle in alpha[0:-1]: x = int(x0 + radius*np.cos(angle)) y = int(y0 + radius*np.sin(angle)) coords.append((x, y)) return coords # Compute a line mask def linePixels(pin0, pin1): length = int(np.hypot(pin1[0] - pin0[0], pin1[1] - pin0[1])) x = np.linspace(pin0[0], pin1[0], length) y = np.linspace(pin0[1], pin1[1], length) return (x.astype(np.int)-1, y.astype(np.int)-1)

А так же функции для расчёта кругового расположения штифтов, от которых будут натягиваться нитки.

Вся магия происходит здесь:

def main():
    # Load image
    image = cv2. imread(imgPath)
    print("[+] loaded " + imgPath + " for threading..")
    # Crop image
    height, width = image.shape[0:2]
    minEdge= min(height, width)
    topEdge = int((height - minEdge)/2)
    leftEdge = int((width - minEdge)/2)
    imgCropped = image[topEdge:topEdge+minEdge, leftEdge:leftEdge+minEdge]
    cv2.imwrite('./cropped.png', imgCropped)
    # Convert to grayscale
    imgGray = cv2.cvtColor(imgCropped, cv2.COLOR_BGR2GRAY)
    cv2.imwrite('./gray.png', imgGray)
    # Resize image
    imgSized = cv2.resize(imgGray, (2*imgRadius + 1, 2*imgRadius + 1))
    # Invert image
    imgInverted = invertImage(imgSized)
    cv2.imwrite('./inverted.png', imgInverted)
    # Mask image
    imgMasked = maskImage(imgInverted, imgRadius)
    cv2.imwrite('./masked.png', imgMasked)
    print("[+] image preprocessed for threading..")
    # Define pin coordinates
    coords = pinCoords(imgRadius, numPins)
    height, width = imgMasked.shape[0:2]
    # image result is rendered to
    imgResult = 255 * np.
ones((height, width)) # Initialize variables i = 0 lines = [] previousPins = [] oldPin = initPin lineMask = np.zeros((height, width)) imgResult = 255 * np.ones((height, width)) # Loop over lines until stopping criteria is reached for line in range(numLines): i += 1 bestLine = 0 oldCoord = coords[oldPin] # Loop over possible lines for index in range(1, numPins): pin = (oldPin + index) % numPins coord = coords[pin] xLine, yLine = linePixels(oldCoord, coord) # Fitness function lineSum = np.sum(imgMasked[yLine, xLine]) if (lineSum > bestLine) and not(pin in previousPins): bestLine = lineSum bestPin = pin # Update previous pins if len(previousPins) >= minLoop: previousPins.pop(0) previousPins.append(bestPin) # Subtract new line from image lineMask = lineMask * 0 cv2.
line(lineMask, oldCoord, coords[bestPin], lineWeight, lineWidth) imgMasked = np.subtract(imgMasked, lineMask) # Save line to results lines.append((oldPin, bestPin)) # plot results xLine, yLine = linePixels(coords[bestPin], coord) imgResult[yLine, xLine] = 0 #cv2.imshow('image', imgResult) #cv2.waitKey(1) # Break if no lines possible if bestPin == oldPin: break # Prepare for next loop oldPin = bestPin # Print progress #sys.stdout.write("\b\b") #sys.stdout.write("\r") #sys.stdout.write("[+] Computing line " + str(line + 1) + " of " + str(numLines) + " total") #sys.stdout.flush() print("\n[+] Image threaded") # Wait for user and save before exit #cv2.waitKey(0) #cv2.destroyAllWindows() cv2.imwrite('./threaded.png', imgResult) #rgb_img = cv2.cvtColor(imgResult.astype('uint8'), cv2.COLOR_BGR2RGB) #plt.imshow(rgb_img) #plt.
show() main()

— картинка загружается, выполняется предварительная обработка, а далее в цикле

# Loop over lines until stopping criteria is reached
    for line in range(numLines):

перебираются возможные варианты расположения линий.
В качестве критерия оценки пригодности — используется оценка лучшего «затенения», то есть выбирается такая линия, которая покрывает наибольшее количество исходных тёмных областей исходного изображения:

# Fitness function
lineSum = np.sum(imgMasked[yLine, xLine])

Результаты предварительной обработки изображения:
— инвертированное изображение:

— на инвертированное изображение наложена круглая маска:

Итоговый результат работы программы:

Вот и всё! Оказалось, что немного Python и OpenCV способны творить и такие интересные штуки для автоматизированной генерации произведений искусства.

Ссылки
string-art/alog2.py
Круглые картины из натянутых ниток
Янтарному подарили портрет Канта из 5 километров ниток

По теме
Робот-художник

999+ Картинки тем | Скачать бесплатные картинки на Unsplash

999+ Thread Pictures | Download Free Images on Unsplash
  • A framed photoPhotos 642
  • A stack of photosCollections 5. 7k
  • A group of peopleUsers 32

sewing

thread

needle

colorful

pattern

person

finger

починка игланаперсток

Коричневый фонкрупный планручная работа

хлопокрукоделиепалец

— черный фоновой фон

HD -шаблон — обои — – –––– – –––– –– – –– –––– – – –– ––– –– –––– – –.

шитьеHd красные обоиБелые фоны

волокнагалантереякатушки

morogorotanzaniathreads

tailorreelcolorful

mogosoaia palacemogosoaiaromania

fashiontextilecolours

kawitphilippineseveryday

Hd color wallpapersrailrailway

indiatamil naduhandloom

Related collections

Thread

88 photos · Curated by Alexandre De Carvalho

The Thread

27 photos · Куратор McKenna Scott

Thread

12 фото · Куратор Crystal Whitlow

mendingneedleowrkthimble

tailorreelcolorful

Black backgroundsmacro

canadaontoronto

handssewPeople images & pictures

kawitphilippineseveryday

indiatamil naduhandloom

sewingHd red wallpapersWhite backgrounds

morogorotanzaniathreads

mogosoaia palacemogosoaiaromania

craftRainbow images & pictureslove heart

Texture backgroundsbhadohiknitting

иглы для человека

–––– –––– –––– – –––– – –––– –– – –– –––– – – –– ––– –– –––– – –.

FiberhaberDasheryReels

Brown Founksclose-Uphandmade

Cottonneedleworkfinger

HD Photle Wallpapersstylepolska

Связанные коллекции

Нить

88 ФОТОГРАФ Тема 12 фото · Куратор Кристал Уитлоу

fashiontextilecolours

ontarioyarnwool

Hd color wallpapersrailrailway

Unsplash logo

Unsplash+

In collaboration with Ave Calvar

Unsplash+

Unlock

mendingneedleowrkthimble

amirali mirhashemian

sewingHd red wallpapersWhite backgrounds

–––– –– –– –––– – –––– – –––– –– – –– –––– – – –– ––– –– –––– – –.

Héctor J. Rivas

волокна галантерейных изделий

K15 Photos

morogorotanzaniathreads

Faris Mohammed

Brown backgroundsclose-uphandmade

Bozhin Karaivanov

tailorreelcolorful

Unsplash logo

Unsplash+

In collaboration with Ave Calvar

Unsplash+

Unlock

cottonneedleworkfinger

Liviu Rau

mogosoaia Palacemogosoaiaromania

amirali mirhashemian

Black backgroundsmacro

Patrycja Chociej

Hd pattern wallpapersstylepolska

Tracey Parish

canadaontoronto

Vishal Banik

fashiontextilecolours

Unsplash logo

Unsplash+

In collaboration with Ave Calvar

Unsplash+

Unlock

handssewPeople images & pictures

Karly Santiago

craftRainbow images & imageslove heart

Нико Назер

kawitphilippineseveryday

Stephane Gagnon

ontarioyarnwool

Noor Sethi

Texture backgroundsbhadohiknitting

Tim Mossholder

Hd color wallpapersrailrailway

Unsplash logo

Unsplash+

In collaboration with Ave Calvar

Unsplash+

Unlock

needlethreadinghuman

Deepak Rautela

indiatamil naduhandloom

Просмотр премиальных изображений на iStock | Скидка 20% на логотип iStock

Unsplash

Make something awesome

Thread Stock-Fotos und Bilder — Getty Images

  • CREATIVE
  • EDITORIAL
  • VIDEOS

Beste Übereinstimmung

Neuestes

Ältestes

Am beliebtesten

Alle Zeiträume24 Stunden48 Stunden72 Stunden7 Tage30 Tage12 MonateAngepasster Zeitraum

Lizenzfrei

Lizenzpflichtig

RF und RM

Durchstöbern Sie 55.