كيفية تغيير حجم صورة مع OpenCV2.0 و Python2.6


Answers

مثال مضاعفة حجم الصورة

هناك طريقتان لتغيير حجم الصورة. ويمكن تحديد الحجم الجديد:

  1. يدويا.

    height, width = src.shape[:2]

    dst = cv2.resize(src, (2*width, 2*height), interpolation = cv2.INTER_CUBIC)

  2. بواسطة عامل التحجيم.

    dst = cv2.resize(src, None, fx = 2, fy = 2, interpolation = cv2.INTER_CUBIC) ، حيث فكس هو عامل التحجيم على طول المحور الأفقي و في على طول المحور الرأسي.

لتقلص صورة، وسوف تبدو أفضل عموما مع إنتيرباري الاستيفاء، في حين لتكبير صورة، وسوف تبدو أفضل عموما مع INTER_CUBIC (بطيئة) أو INTER_LINEAR (أسرع ولكن لا يزال يبدو موافق).

مثال على تصغير الصورة لتتناسب مع ارتفاع / عرض أقصى (مع الحفاظ على نسبة العرض إلى الارتفاع)

import cv2

img = cv2.imread('YOUR_PATH_TO_IMG')

height, width = img.shape[:2]
max_height = 300
max_width = 300

# only shrink if img is bigger than required
if max_height < height or max_width < width:
    # get scaling factor
    scaling_factor = max_height / float(height)
    if max_width/float(width) < scaling_factor:
        scaling_factor = max_width / float(width)
    # resize image
    img = cv2.resize(img, None, fx=scaling_factor, fy=scaling_factor, interpolation=cv2.INTER_AREA)

cv2.imshow("Shrinked image", img)
key = cv2.waitKey()

استخدام التعليمات البرمجية مع cv2

import cv2 as cv

im = cv.imread(path)

height, width = im.shape[:2]

thumbnail = cv.resize(im, (width/10, height/10), interpolation = cv.INTER_AREA)

cv.imshow('exampleshq', thumbnail)
cv.waitKey(0)
cv.destroyAllWindows()
Question

أريد استخدام OpenCV2.0 و Python2.6 لإظهار الصور التي تم تغيير حجمها. اعتدت واعتمدت المثال في http://opencv.willowgarage.com/documentation/python/cookbook.html ولكن للأسف هذا الرمز هو ل OpenCV2.1 ويبدو أن لا تعمل على 2.0. هنا الرمز الخاص بي:

import os, glob
import cv

ulpath = "exampleshq/"

for infile in glob.glob( os.path.join(ulpath, "*.jpg") ):
    im = cv.LoadImage(infile)
    thumbnail = cv.CreateMat(im.rows/10, im.cols/10, cv.CV_8UC3)
    cv.Resize(im, thumbnail)
    cv.NamedWindow(infile)
    cv.ShowImage(infile, thumbnail)
    cv.WaitKey(0)
    cv.DestroyWindow(name)

منذ لا أستطيع استخدام

cv.LoadImageM

إستعملت

cv.LoadImage

بدلا من ذلك، الذي لم يكن هناك مشكلة في التطبيقات الأخرى. ومع ذلك cv.iplimage لا يوجد لديه الصفات الصفوف، القولون أو الحجم. يمكن لأي شخص يعطيني تلميحا، وكيفية حل هذه المشكلة؟ شكر.