خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

4 تکنیک جالب پردازش تصویر با استفاده از JES

JES به شما امکان می دهد فیلترهای تصویر خود را تنها در چند خط کد بسازید.

JES یک محیط برنامه نویسی است که هم شامل یک منطقه برنامه نویسی و هم خط فرمان خودش است. می توانید از JES برای ویرایش تصاویر، فیلم ها و صداها استفاده کنید.

روش های مختلفی برای ویرایش عکس با استفاده از JES وجود دارد. این شامل افزودن فیلتر خاکستری یا فیلتر منفی است. همچنین می توانید تصویر را آینه کنید یا رنگ خاصی را تقویت کنید.

نحوه ایجاد تصاویر در مقیاس خاکستری

بسیاری از برنامه های ویرایش عکس با کاربری آسان به شما امکان می دهند تصاویر را به روش های مختلف ویرایش کنید. یکی از این موارد شامل افزودن فیلتر خاکستری است. در JES، می‌توانید با تغییر رنگ هر پیکسل برای استفاده از سفید، خاکستری یا سیاه، تصاویر را برای استفاده از فیلتر مقیاس خاکستری ویرایش کنید.

JES از زبان برنامه نویسی Jython استفاده می کند که بسیار شبیه پایتون است و از همان قوانین تورفتگی پیروی می کند. در صورت نیاز، می توانید به برخی از دستورات مفید پایتون برای مبتدیان نگاهی بیندازید تا شما را به سرعت بالا ببرند.

  1. یک تابع جدید به نام makeGrayscalePicture():def makeGrayscalePicture(): ایجاد کنید.
  2. در داخل تابع جدید، از تابع pickAFile() استفاده کنید تا از کاربر بخواهید یک تصویر را انتخاب کند. از تابع makePicture() برای ایجاد یک شی تصویر از فایل انتخاب شده استفاده کنید: file = pickAFile() pic = makePicture(file)
  3. از تابع getPixels() برای بدست آوردن آرایه ای از تمام پیکسل های داخل تصویر انتخاب شده استفاده کنید:pixels =getPixels(pic)
  4. از یک حلقه for برای چرخش در هر پیکسل در تصویر استفاده کنید: برای پیکسل در پیکسل:
  5. در داخل حلقه for، مقدار RGB پیکسل را دریافت کنید. شما می توانید مقادیر قرمز، سبز و آبی رنگ را در متغیرهای مختلف ذخیره کنید.r = getRed(pixel)g = getGreen(pixel)b = getBlue(pixel)

def makeGrayscalePicture():

file = pickAFile()
pic = makePicture(file)

pixels = getPixels(pic)

for pixel in pixels:

r = getRed(pixel)
g = getGreen(pixel)
b = getBlue(pixel)

  1. مقدار متوسط ​​هر رنگ را محاسبه کنید. می توانید این کار را با اضافه کردن مقادیر قرمز، سبز و آبی و تقسیم کل بر 3 انجام دهید: میانگین = (r + g + b) / 3
  2. همه مقادیر قرمز، سبز و آبی را روی یک مقدار تنظیم کنید. این باعث می شود پیکسل خاکستری شود.setRed(pixel, متوسط) setGreen(pixel, متوسط) setBlue(pixel, متوسط)
  3. بعد از حلقه for، تصویر:show(pic) را نمایش دهید
  4. روی دکمه Load Program که بین ناحیه برنامه نویسی و خط فرمان قرار دارد کلیک کنید.
  5. تابع را با استفاده از ناحیه خط فرمان اجرا کنید: makeGrayscalePicture()
  6. برای انتخاب تصویر از کاوشگر فایل استفاده کنید. بر روی Open کلیک کنید.
  7. صبر کنید تا عملکرد پردازش تصویر را به پایان برساند. یک پنجره جدید برای نمایش تصویر جدید در مقیاس خاکستری باز می شود.

average = (r + g + b) / 3

setRed(pixel, average)
setGreen(pixel, average)
setBlue(pixel, average)

show(pic)

makeGrayscalePicture()

تابع Grayscale در خط فرمان تایپ شده استJES با فایل اکسپلورر باز می شودتصویر خاکستری در یک پنجره جدید باز شد

نحوه ایجاد تصاویر منفی

تصویر نگاتیو تصویری است که در آن قسمت‌های روشن عکس تیره و قسمت‌های تاریک عکس روشن به نظر می‌رسند. شما می توانید این افکت را با تغییر مقادیر قرمز، سبز و آبی هر پیکسل ایجاد کنید.

  1. یک تابع جدید به نام makeNegativePicture():def makeNegativePicture(): ایجاد کنید.
  2. در داخل تابع جدید، از تابع pickAFile() استفاده کنید تا از کاربر بخواهید یک تصویر را انتخاب کند. از تابع makePicture() برای ایجاد یک شی تصویر از فایل انتخاب شده استفاده کنید: file = pickAFile() pic = makePicture(file)
  3. از تابع getPixels() برای بدست آوردن آرایه ای از تمام پیکسل های داخل تصویر انتخاب شده استفاده کنید:pixels =getPixels(pic)
  4. از یک حلقه for برای چرخش در هر پیکسل در تصویر استفاده کنید: برای پیکسل در پیکسل:
  5. در داخل حلقه for، مقادیر قرمز، سبز و آبی را برای پیکسل دریافت کنید:r = getRed(pixel)g = getGreen(pixel)b = getBlue(pixel)
  6. برای ایجاد اثر منفی، مقدار مخالف رنگ را در طیف RGB دریافت کنید. به عنوان مثال، اگر مقدار قرمز 100 باشد، مقدار مخالف 255 – 100 خواهد بود که 155 است.newRed = 255 – rnewBlue = 255 – gnewGreen = 255 – b
  7. رنگ پیکسل را با مقادیر جدید قرمز، سبز و آبی جایگزین کنید: setRed(pixel, newRed)setBlue(pixel, newBlue)setGreen(pixel, newGreen)
  8. بعد از حلقه for، تصویر:show(pic) را نمایش دهید
  9. روی دکمه Load Program که بین ناحیه برنامه نویسی و خط فرمان قرار دارد کلیک کنید.
  10. تابع makeNegativePicture() را از خط فرمان اجرا کنید:makeNegativePicture()
  11. برای انتخاب تصویر از کاوشگر فایل استفاده کنید. بر روی Open کلیک کنید.
  12. یک پنجره جدید برای نمایش تصویر منفی باز می شود.

def makeNegativePicture():

file = pickAFile()
pic = makePicture(file)

pixels = getPixels(pic)

for pixel in pixels:

r = getRed(pixel)
g = getGreen(pixel)
b = getBlue(pixel)

newRed = 255 - r
newBlue = 255 - g
newGreen = 255 - b

setRed(pixel, newRed)
setBlue(pixel, newBlue)
setGreen(pixel, newGreen)

show(pic)

makeNegativePicture()

تابع منفی در خط فرمان تایپ شده استJES با فایل اکسپلورر باز می شودتصویر منفی در یک پنجره جدید باز شد

چگونه یک رنگ خاص را در یک تصویر تقویت کنیم

شما همچنین می توانید از JES برای بهبود رنگ های خاص یک تصویر استفاده کنید. به عنوان مثال، می توانید مقدار قرمز هر پیکسل را دو برابر کنید تا تصویر قرمزتر به نظر برسد.

  1. یک تابع جدید به نام alterReds():def alterReds(): ایجاد کنید.
  2. در داخل تابع جدید، از تابع pickAFile() استفاده کنید تا از کاربر بخواهید یک تصویر را انتخاب کند. از تابع makePicture() برای ایجاد یک شی تصویر از فایل انتخاب شده استفاده کنید: file = pickAFile() pic = makePicture(file)
  3. از تابع getPixels() برای بدست آوردن آرایه ای از تمام پیکسل های داخل تصویر انتخاب شده استفاده کنید:pixels =getPixels(pic)
  4. از یک حلقه for برای چرخش در هر پیکسل در تصویر استفاده کنید: برای پیکسل در پیکسل:
  5. در داخل حلقه for، فقط مقدار قرمز پیکسل را دریافت کنید: r = getRed(pixel)

def alterReds():

file = pickAFile()
pic = makePicture(file)

pixels = getPixels(pic)

for pixel in pixels:

  1. مقدار قرمز را دو برابر کنید و آن را در یک متغیر جدید ذخیره کنید: enhancedRed = r*2
  2. مقدار قرمز پیکسل را با مقدار جدید و پیشرفته جایگزین کنید. به عنوان مثال، اگر مقدار RGB اصلی پیکسل rgb (100، 50، 50) باشد، مقدار جدید rgb (200، 50، 50) خواهد بود.setRed(pixel, enhancedRed)
  3. بعد از حلقه for، تصویر را نمایش دهید:show(pic)
  4. روی دکمه Load Program که بین ناحیه برنامه نویسی و خط فرمان قرار دارد کلیک کنید.
  5. تابع را با استفاده از ناحیه خط فرمان اجرا کنید:alterReds()
  6. برای انتخاب تصویر از کاوشگر فایل استفاده کنید. بر روی Open کلیک کنید.
  7. پنجره جدیدی برای نمایش تصویر ویرایش شده باز می شود.

enhancedRed = r*2

setRed(pixel, enhancedRed)

show(pic)

alterReds()

تابع AlterReds که در خط فرمان نوشته شده استJES با فایل اکسپلورر باز می شودتصویر قرمز بهبود یافته در یک پنجره جدید باز شد

چگونه یک تصویر را آینه کنیم

برای انعکاس تصویر، هر پیکسل سمت چپ تصویر باید دقیقاً با پیکسل مخالف سمت راست مطابقت داشته باشد.

مطلب مرتبط:   تزریق یک سرویس Nest.js از یک ماژول متفاوت

تصویر ساحل به عنوان مثال

می توانید این کار را با ایجاد یک تصویر خالی جدید با پس زمینه سفید انجام دهید. سپس می توانید هر پیکسل را برای ایجاد تصویر آینه ای جدید کپی کنید.

  1. یک تابع جدید به نام mirror():def mirror(): ایجاد کنید.
  2. در داخل تابع جدید، از تابع pickAFile() استفاده کنید تا از کاربر بخواهید یک تصویر را انتخاب کند. از تابع makePicture() برای ایجاد یک شی تصویر از فایل انتخاب شده استفاده کنید: file = pickAFile() pic = makePicture(file)
  3. ارتفاع و عرض تصویر انتخاب شده را دریافت کنید:width = getWidth(pic)height = getHeight(pic)
  4. از تابع makeEmptyPicture() برای ایجاد یک تصویر خالی استفاده کنید. یک تصویر خالی یک تصویر با پس زمینه سفید است. عرض را دو برابر کنید تا بتوانید تصویر اصلی را در سمت چپ و تصویر برگردانده شده را در سمت راست قرار دهید:mirroredPic = makeEmptyPicture (عرض*2، ارتفاع)
  5. برای حلقه کردن هر مختصات x و y تصویر اصلی یک حلقه for ایجاد کنید. در داخل حلقه for، پیکسل را در آن مکان ذخیره کنید: برای x در محدوده (0، عرض):    برای y در محدوده (0، ارتفاع):        originalPix = getPixel(pic, x, y)

def mirror():

file = pickAFile()
pic = makePicture(file)

width = getWidth(pic)
height = getHeight(pic)

mirroredPic = makeEmptyPicture(width*2, height)

for x in range(0, width):
    for y in range(0, height):
        originalPix = getPixel(pic, x, y)

  1. هنوز در داخل حلقه for، پیکسل را در تصویر خالی جدید در همان مکان x و y دریافت کنید. این سمت چپ تصویر آینه شده خواهد بود:leftMirrorPixel = getPixel(mirroredPic, x, y)
  2. رنگ پیکسل اصلی را به پیکسل سمت چپ تصویر جدید کپی کنید: تنظیم رنگ (چپMirrorPixel، getColor (عکس اصلی))
  3. همین کار را برای سمت راست انجام دهید. مختصات y یکسان خواهد بود. از آنجایی که مختصات x از سمت راست خواهد بود، مختصات x را از عرض کامل تصویر آینه شده جدید کم کنید:rightMirrorPixel = getPixel(mirroredPic, (width*2)-x-1, y)
  4. رنگ پیکسل اصلی را در پیکسل سمت راست تصویر جدید کپی کنید: تنظیم رنگ (rightMirrorPixel، getColor (تصویر اصلی))
  5. بعد از حلقه for، تصویر:show(mirroredPic) را نمایش دهید
  6. روی دکمه Load Program که بین ناحیه برنامه نویسی و خط فرمان قرار دارد کلیک کنید.
  7. تابع mirror() را از خط فرمان اجرا کنید:mirror()
  8. برای انتخاب تصویر از کاوشگر فایل استفاده کنید. بر روی Open کلیک کنید.
  9. یک پنجره جدید برای نمایش تصویر آینه شده باز می شود.

leftMirrorPixel = getPixel(mirroredPic, x, y)

setColor(leftMirrorPixel, getColor(originalPix))

rightMirrorPixel = getPixel(mirroredPic, (width*2)-x-1, y)

setColor(rightMirrorPixel, getColor(originalPix))

show(mirroredPic)

mirror()

تابع آینه ای که در خط فرمان نوشته شده استJES با فایل اکسپلورر باز می شودتصویر آینه شده در یک پنجره جدید باز شد

ویرایش تصاویر با استفاده از JES

اکنون امیدواریم درک کنید که چگونه با استفاده از تکنیک های مختلف، عکس ها را در JES ویرایش کنید. اینها تنها تکنیک هایی نیستند که می توانید روی عکس ها اعمال کنید، بنابراین می توانید سایر امکانات را در JES بیشتر آزمایش کنید.

مطلب مرتبط:   مقدمه ای بر WebAssembly in Go

اگر می خواهید مهارت های پایتون خود را بهبود ببخشید، پروژه های کوتاه و سرگرم کننده راهی عالی برای درک مفاهیم کلیدی پایتون هستند.