রবার্টস এজ ডিটেক্টর কীভাবে ব্যবহার করবেন?


10

আমি একটি চিত্র প্রক্রিয়া করার জন্য রবার্টস প্রান্ত সনাক্তকরণ ব্যবহার করার চেষ্টা করছি। আমি কি কেবলমাত্র উভয় মুখোশটিকে চিত্রটিতে প্রয়োগ করি এবং স্বাভাবিক হিসাবে সমাবর্তন সম্পাদন করি? কেউ কি আমাকে এই প্রান্ত সনাক্তকরণ পদ্ধতিটি কীভাবে ব্যবহার করবেন তার ব্রেকডাউন দিতে পারে, কারণ আমি গ্রেস্কেল চিত্রটি প্রক্রিয়া করার জন্য এটি প্রোগ্রাম করার চেষ্টা করছি। আমি উভয় কার্নেল পৃথকভাবে চিত্রটি কনভোল্ট করেছি তবে চিত্রটি সঠিকভাবে দেখায় না।

ধন্যবাদ।

উত্তর:


10

রবার্ট ক্রস কিছুটা জটিল কারণ এটি কোনও বিজোড় আকার নয় (3x3 বা 5x5 এর চেয়ে 2x2)। আমি প্যাডেড 3x3 কনভ্যুলেশন মাস্ক ব্যবহার করে নম্পী + স্কিপি ব্যবহার করে এটি করেছি।

import sys
import numpy as np
from scipy import ndimage
import Image

roberts_cross_v = np.array( [[ 0, 0, 0 ],
                             [ 0, 1, 0 ],
                             [ 0, 0,-1 ]] )

roberts_cross_h = np.array( [[ 0, 0, 0 ],
                             [ 0, 0, 1 ],
                             [ 0,-1, 0 ]] )
def load_image( infilename ) :
    img = Image.open( infilename )
    img.load() 
    # note signed integer
    return np.asarray( img, dtype="int32" )

def save_image( data, outfilename ) :
    img = Image.fromarray( np.asarray( np.clip(data,0,255), dtype="uint8"), "L" )
    img.save( outfilename )

def roberts_cross( infilename, outfilename ) :
    image = load_image( infilename )

    vertical = ndimage.convolve( image, roberts_cross_v )
    horizontal = ndimage.convolve( image, roberts_cross_h )

    output_image = np.sqrt( np.square(horizontal) + np.square(vertical))

    save_image( output_image, outfilename )

infilename = sys.argv[1]
outfilename = sys.argv[2]
roberts_cross( infilename, outfilename )

রবার্ট ক্রসে উইকিপিডিয়া এন্ট্রি থেকে। http://en.wikipedia.org/wiki/Roberts_Cross

উইকিপিডিয়ায় রবার্টের ক্রস এন্ট্রি থেকে চিত্র

আমার স্ক্রিপ্ট এর আউটপুট।

আমার স্ক্রিপ্ট আউটপুট


আপনি কি চিত্রটিতে প্রতিটি পিক্সেল মান বর্গক্ষেত্র করেন?
আদমজমার্কাম

হ্যাঁ. "Np.sqrt (np.square (অনুভূমিক) + np.square (উল্লম্ব))" অনুভূমিক, উল্লম্ব দিকগুলির মধ্যে ভেক্টরের প্রস্থকে দেয়।
ডেভিড পুল

@ ডেভিডপুল রবার্টের এজ ডিটেক্টর উইকিটি দুর্দান্ত - সাধারণ, দৃষ্টান্তমূলক এবং দৃষ্টান্তমূলক। এটি কীভাবে / কেন শব্দ ভিএসের অন্যান্য গ্রেডিয়েন্ট ব্যবস্থা সম্পর্কে সংবেদনশীল? কেবলমাত্র একটি 'সত্য' গ্রেডিয়েন্ট পরিমাপ নেই?
স্পেসি

আমি অজগর (স্পাইডার সংস্করণ) এ এই ফাংশনটি বাস্তবায়নের চেষ্টা করছি তবে এটি যে যুক্তিগুলি গ্রহণ করে এবং কীভাবে তাদের খাওয়ানো যায় তা বুঝতে আমার সমস্যা হচ্ছে? ইনফিলিমন এবং আউটফিলনাম কী? ধন্যবাদ স্যাম

infilename একটি গ্রেস্কেল (1 সমতল) চিত্র। স্ক্রিপ্টটি লিখে ফেলবে কেবল আউটফিলনাম an ইনপুট / আউটপুট চিত্রগুলি jpeg, png, tif, ইত্যাদি হতে পারে, ইমেজ লাইব্রেরি (এখন বালিশ) ফাইল এক্সটেনশনের উপর ভিত্তি করে চিত্র বিন্যাসটি ব্যাখ্যা করবে। উদাহরণ: পাইথন 3 আরসি ক্রস.পি বাইসাইকেল.জেপিজি আউট.টিফ
ডেভিড পুল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.