示例#1
0
文件: test_hsv.py 项目: lucasace/caer
def test_hsv2bgr():
    cv_hsv = cv.cvtColor(cv_bgr, cv.COLOR_BGR2HSV)
    cv_hsv = caer.to_tensor(cv_hsv, cspace='hsv')

    bgr = caer.hsv2bgr(cv_hsv)

    assert len(bgr.shape) == 3
    assert isinstance(bgr, caer.Tensor)
    assert bgr.is_bgr()
示例#2
0
文件: test_hsv.py 项目: lucasace/caer
def test_hsv2hls():
    cv_hsv = cv.cvtColor(cv_bgr, cv.COLOR_BGR2HSV)
    cv_hsv = caer.to_tensor(cv_hsv, cspace='hsv')

    hls = caer.hsv2hls(cv_hsv)

    assert len(hls.shape) == 3
    assert isinstance(hls, caer.Tensor)
    assert hls.is_hls()
示例#3
0
def test_yuv2hls():
    cv_yuv = cv.cvtColor(cv_bgr, cv.COLOR_BGR2YUV)
    cv_yuv = caer.to_tensor(cv_yuv, cspace="yuv")

    hls = caer.yuv2hls(cv_yuv)

    assert len(hls.shape) == 3
    assert isinstance(hls, caer.Tensor)
    assert hls.is_hls()
示例#4
0
def test_yuv2luv():
    cv_yuv = cv.cvtColor(cv_bgr, cv.COLOR_BGR2YUV)
    cv_yuv = caer.to_tensor(cv_yuv, cspace="yuv")

    luv = caer.yuv2luv(cv_yuv)

    assert len(luv.shape) == 3
    assert isinstance(luv, caer.Tensor)
    assert luv.is_luv()
示例#5
0
def test_yuv2rgb():
    cv_yuv = cv.cvtColor(cv_bgr, cv.COLOR_BGR2YUV)
    cv_yuv = caer.to_tensor(cv_yuv, cspace="yuv")

    rgb = caer.yuv2rgb(cv_yuv)

    assert len(rgb.shape) == 3
    assert isinstance(rgb, caer.Tensor)
    assert rgb.is_rgb()
示例#6
0
def test_yuv2bgr():
    cv_yuv = cv.cvtColor(cv_bgr, cv.COLOR_BGR2YUV)
    cv_yuv = caer.to_tensor(cv_yuv, cspace="yuv")

    bgr = caer.yuv2bgr(cv_yuv)

    assert len(bgr.shape) == 3
    assert isinstance(bgr, caer.Tensor)
    assert bgr.is_bgr()
示例#7
0
文件: test_hls.py 项目: jasmcaus/caer
def test_hls2lab():
    cv_hls = cv.cvtColor(cv_bgr, cv.COLOR_BGR2HLS)
    cv_hls = caer.to_tensor(cv_hls, cspace="hls")

    lab = caer.hls2lab(cv_hls)

    assert len(lab.shape) == 3
    assert isinstance(lab, caer.Tensor)
    assert lab.is_lab()
示例#8
0
文件: test_hls.py 项目: jasmcaus/caer
def test_hls2hsv():
    cv_hls = cv.cvtColor(cv_bgr, cv.COLOR_BGR2HLS)
    cv_hls = caer.to_tensor(cv_hls, cspace="hls")

    hsv = caer.hls2hsv(cv_hls)

    assert len(hsv.shape) == 3
    assert isinstance(hsv, caer.Tensor)
    assert hsv.is_hsv()
示例#9
0
文件: test_hls.py 项目: jasmcaus/caer
def test_hls2bgr():
    cv_hls = cv.cvtColor(cv_bgr, cv.COLOR_BGR2HLS)
    cv_hls = caer.to_tensor(cv_hls, cspace="hls")

    bgr = caer.hls2bgr(cv_hls)

    assert len(bgr.shape) == 3
    assert isinstance(bgr, caer.Tensor)
    assert bgr.is_bgr()
示例#10
0
文件: test_hsv.py 项目: lucasace/caer
def test_hsv2lab():
    cv_hsv = cv.cvtColor(cv_bgr, cv.COLOR_BGR2HSV)
    cv_hsv = caer.to_tensor(cv_hsv, cspace='hsv')

    lab = caer.hsv2lab(cv_hsv)

    assert len(lab.shape) == 3
    assert isinstance(lab, caer.Tensor)
    assert lab.is_lab()
示例#11
0
def test_lab2rgb():
    cv_lab = cv.cvtColor(cv_bgr, cv.COLOR_BGR2LAB)
    cv_lab = caer.to_tensor(cv_lab, cspace='lab')

    rgb = caer.lab2rgb(cv_lab)

    assert len(rgb.shape) == 3
    assert isinstance(rgb, caer.Tensor)
    assert rgb.is_rgb()
示例#12
0
def test_yuv2hsv():
    cv_yuv = cv.cvtColor(cv_bgr, cv.COLOR_BGR2YUV)
    cv_yuv = caer.to_tensor(cv_yuv, cspace='yuv')

    hsv = caer.yuv2hsv(cv_yuv)

    assert len(hsv.shape) == 3
    assert isinstance(hsv, caer.Tensor)
    assert hsv.is_hsv()
示例#13
0
def test_lab2hsv():
    cv_lab = cv.cvtColor(cv_bgr, cv.COLOR_BGR2LAB)
    cv_lab = caer.to_tensor(cv_lab, cspace='lab')

    hsv = caer.lab2hsv(cv_lab)

    assert len(hsv.shape) == 3
    assert isinstance(hsv, caer.Tensor)
    assert hsv.is_hsv()
示例#14
0
def test_lab2bgr():
    cv_lab = cv.cvtColor(cv_bgr, cv.COLOR_BGR2LAB)
    cv_lab = caer.to_tensor(cv_lab, cspace='lab')

    bgr = caer.lab2bgr(cv_lab)

    assert len(bgr.shape) == 3
    assert isinstance(bgr, caer.Tensor)
    assert bgr.is_bgr()
示例#15
0
def test_yuv2lab():
    cv_yuv = cv.cvtColor(cv_bgr, cv.COLOR_BGR2YUV)
    cv_yuv = caer.to_tensor(cv_yuv, cspace='yuv')

    lab = caer.yuv2lab(cv_yuv)

    assert len(lab.shape) == 3
    assert isinstance(lab, caer.Tensor)
    assert lab.is_lab()
示例#16
0
def test_rgb2gray():
    cv_rgb = cv.cvtColor(cv_bgr, cv.COLOR_BGR2RGB)
    cv_rgb = caer.to_tensor(cv_rgb, cspace='rgb')
    gray = caer.rgb2gray(cv_rgb)

    assert len(gray.shape) == 2 or (len(gray.shape) == 3
                                    and gray.shape[-1] == 1)
    assert isinstance(gray, caer.Tensor)
    assert gray.is_gray()
示例#17
0
def test_lab2hls():
    cv_lab = cv.cvtColor(cv_bgr, cv.COLOR_BGR2LAB)
    cv_lab = caer.to_tensor(cv_lab, cspace="lab")

    hls = caer.lab2hls(cv_lab)

    assert len(hls.shape) == 3
    assert isinstance(hls, caer.Tensor)
    assert hls.is_hls()
示例#18
0
def test_gray2rgb():
    cv_gray = cv.imread(tens_path)
    cv_gray = cv.cvtColor(cv_gray, cv.COLOR_BGR2GRAY)
    cv_gray = caer.to_tensor(cv_gray, cspace="gray")

    rgb = caer.gray2rgb(cv_gray)

    assert len(rgb.shape) == 3
    assert isinstance(rgb, caer.Tensor)
    assert rgb.is_rgb()
示例#19
0
文件: test_luv.py 项目: lucasace/caer
def test_luv2gray():
    cv_luv = cv.cvtColor(cv_bgr, cv.COLOR_BGR2LUV)
    cv_luv = caer.to_tensor(cv_luv, cspace='luv')

    gray = caer.luv2gray(cv_luv)

    assert len(gray.shape) == 2 or (len(gray.shape) == 3
                                    and gray.shape[-1] == 1)
    assert isinstance(gray, caer.Tensor)
    assert gray.is_gray()
示例#20
0
def show_resized_image():
    global currentImage
    global resizedImgBtn
    global flipHImgBtn
    global flipVImgBtn
    global flipHVImgBtn
    global rotateImgBtn

    tempSize = selectedSize.get()

    if 'x' in tempSize:
        size = tempSize.replace(' ', '').split('x')

        try:
            if resizedImgBtn['bg'] == 'lightgrey':
                resizedImgBtn['bg'] = 'lightblue'

                if flipHImgBtn['bg'] == 'lightblue':
                    flipHImgBtn['bg'] = 'lightgrey'
                elif flipVImgBtn['bg'] == 'lightblue':
                    flipVImgBtn['bg'] = 'lightgrey'
                elif flipHVImgBtn['bg'] == 'lightblue':
                    flipHVImgBtn['bg'] = 'lightgrey'
                else:
                    rotateImgBtn['bg'] = 'lightgrey'

            if not transformedImage is None:
                currentImage = caer.to_tensor(transformedImage, cspace='rgb')
                reset_ghsps()

            # Resize the image without preserving aspect ratio
            currentImage = caer.to_tensor(caer.resize(
                currentImage,
                target_size=(int(size[0]), int(size[1])),
                preserve_aspect_ratio=False),
                                          cspace='rgb')

            if rotationApplied:
                show_rotated_image(True)
            else:
                image_show(currentImage)
        except Exception as e:
            print(str(e))
示例#21
0
def test_gray2hsv():
    cv_gray = cv.imread(tens_path)
    cv_gray = cv.cvtColor(cv_gray, cv.COLOR_BGR2GRAY)
    cv_gray = caer.to_tensor(cv_gray, cspace="gray")

    hsv = caer.gray2hsv(cv_gray)

    assert len(hsv.shape) == 3
    assert isinstance(hsv, caer.Tensor)
    assert hsv.is_hsv()
示例#22
0
文件: test_hls.py 项目: lucasace/caer
def test_hls2gray():
    cv_hls = cv.cvtColor(cv_bgr, cv.COLOR_BGR2HLS)
    cv_hls = caer.to_tensor(cv_hls, cspace='hls')

    gray = caer.hls2gray(cv_hls)

    assert len(gray.shape) == 2 or (len(gray.shape) == 3
                                    and gray.shape[-1] == 1)
    assert isinstance(gray, caer.Tensor)
    assert gray.is_gray()
示例#23
0
def test_lab2gray():
    cv_lab = cv.cvtColor(cv_bgr, cv.COLOR_BGR2LAB)
    cv_lab = caer.to_tensor(cv_lab, cspace="lab")

    gray = caer.lab2gray(cv_lab)

    assert len(gray.shape) == 2 or (len(gray.shape) == 3
                                    and gray.shape[-1] == 1)
    assert isinstance(gray, caer.Tensor)
    assert gray.is_gray()
示例#24
0
def test_hsv2gray():
    cv_hsv = cv.cvtColor(cv_bgr, cv.COLOR_BGR2HSV)
    cv_hsv = caer.to_tensor(cv_hsv, cspace="hsv")

    gray = caer.hsv2gray(cv_hsv)

    assert len(gray.shape) == 2 or (len(gray.shape) == 3
                                    and gray.shape[-1] == 1)
    assert isinstance(gray, caer.Tensor)
    assert gray.is_gray()
示例#25
0
def test_gray2lab():
    cv_gray = cv.imread(tens_path)
    cv_gray = cv.cvtColor(cv_gray, cv.COLOR_BGR2GRAY)
    cv_gray = caer.to_tensor(cv_gray, cspace='gray')

    lab = caer.gray2lab(cv_gray)

    assert len(lab.shape) == 3
    assert isinstance(lab, caer.Tensor)
    assert lab.is_lab()
示例#26
0
def test_gray2hls():
    cv_gray = cv.imread(tens_path)
    cv_gray = cv.cvtColor(cv_gray, cv.COLOR_BGR2GRAY)
    cv_gray = caer.to_tensor(cv_gray, cspace='gray')

    hls = caer.gray2hls(cv_gray)

    assert len(hls.shape) == 3
    assert isinstance(hls, caer.Tensor)
    assert hls.is_hls()
示例#27
0
def test_gray2bgr():
    cv_gray = cv.imread(tens_path)
    cv_gray = cv.cvtColor(cv_gray, cv.COLOR_BGR2GRAY)
    cv_gray = caer.to_tensor(cv_gray, cspace='gray')

    bgr = caer.gray2bgr(cv_gray)

    assert len(bgr.shape) == 3
    assert isinstance(bgr, caer.Tensor)
    assert bgr.is_bgr()
示例#28
0
def play_file_video():
    global close_video_window
    global sourceSelection
    global take_a_screenshot
    global checkVarLoop

    if not video_file is None:
        capture1 = None
        close_video_window = False
        popup_menu_source['state'] = 'disabled'
        popup_menu_scale['state'] = 'disabled'
        closeBtn['state'] = 'normal'
        screenshotBtn['state'] = 'normal'
        chbLoop['state'] = 'normal'

        try:
            capture1 = caer.core.cv.VideoCapture(video_file)

            while True:
                isTrue, frame = capture1.read()

                if isTrue:
                    if scaleSelection.get() != '1.00':
                        width = int(frame.shape[1] *
                                    float(scaleSelection.get()))
                        height = int(frame.shape[0] *
                                     float(scaleSelection.get()))

                        dimensions = (width, height)

                        frame = caer.core.cv.resize(
                            frame,
                            dimensions,
                            interpolation=caer.core.cv.INTER_AREA)

                        caer.core.cv.imshow(video_file, frame)
                    else:
                        caer.core.cv.imshow(video_file, frame)

                    if take_a_screenshot:
                        caer.imsave(
                            './Screenshot_' + str(screenshot_count) + '.png',
                            caer.to_tensor(frame, cspace="bgr"))
                        take_a_screenshot = False
                else:
                    if checkVarLoop.get() == 1:
                        capture1.release()
                        capture1 = caer.core.cv.VideoCapture(video_file)
                    else:
                        break

                if caer.core.cv.waitKey(20) & 0xFF == ord(
                        'd') or app_closing or close_video_window:
                    break
        except Exception as e:
            print(str(e))

        if not app_closing:
            popup_menu_source['state'] = 'normal'
            popup_menu_scale['state'] = 'normal'
            closeBtn['state'] = 'disabled'
            screenshotBtn['state'] = 'disabled'
            checkVarLoop.set(0)
            chbLoop['state'] = 'disabled'
            sourceSelection.set('None')

        capture1.release()
        caer.core.cv.destroyAllWindows()
示例#29
0
#  \_____\/_/    \_ \______ |_|  \_\

# Licensed under the MIT License <http://opensource.org/licenses/MIT>
# SPDX-License-Identifier: MIT
# Copyright (c) 2020-2021 The Caer Authors <http://github.com/jasmcaus>

import caer
import cv2 as cv
import os

here = os.path.dirname(os.path.dirname(__file__))
tens_path = os.path.join(here, 'data', 'green_fish.jpg')
# BGR
cv_bgr = cv.imread(tens_path)
cv_rgb = cv.cvtColor(cv_bgr, cv.COLOR_BGR2RGB)
cv_rgb = caer.to_tensor(cv_rgb, cspace='rgb')


def test_rgb2bgr():
    cv_rgb = cv.cvtColor(cv_bgr, cv.COLOR_BGR2RGB)
    cv_rgb = caer.to_tensor(cv_rgb, cspace='rgb')
    bgr = caer.rgb2bgr(cv_rgb)

    assert len(bgr.shape) == 3
    assert isinstance(bgr, caer.Tensor)
    assert bgr.is_bgr()


def test_rgb2gray():
    cv_rgb = cv.cvtColor(cv_bgr, cv.COLOR_BGR2RGB)
    cv_rgb = caer.to_tensor(cv_rgb, cspace='rgb')
示例#30
0
文件: caer_gui.py 项目: jasmcaus/caer
def adjust_ghsps(*args):
    global transformedImage

    if not currentImage is None:
        # reset the error label's text
        if lblError['text'] == 'Error':
            lblError['text'] = ''

        transformedImage = caer.to_tensor(currentImage, cspace="rgb")

        # apply all transformations to currently displayed image

        if image_resized:
            transformedImage = caer.resize(transformedImage,
                                           target_size=(int(image_size[0]),
                                                        int(image_size[1])),
                                           preserve_aspect_ratio=False)

        if hue.get() != 0.0:
            transformedImage = caer.transforms.adjust_hue(
                transformedImage, hue.get())

        if saturation.get() != 1.0:
            transformedImage = caer.transforms.adjust_saturation(
                transformedImage, saturation.get())

        if imgGamma.get() != 1.05:
            transformedImage = caer.transforms.adjust_gamma(
                transformedImage, imgGamma.get())

        if sharpen.get() != 8.9:
            transformedImage = caer.core.cv.filter2D(transformedImage, -1,
                                                     sharpenKernel)

        gb = gaussian_blur.get()

        if gb > 1:
            transformedImage = caer.core.cv.GaussianBlur(
                transformedImage, (gb + 1, gb + 1),
                caer.core.cv.BORDER_DEFAULT)

        if posterize.get() < 6:
            transformedImage = caer.transforms.posterize(
                transformedImage, posterize.get())

        if solarize.get() < 255:
            transformedImage = caer.transforms.solarize(
                transformedImage, solarize.get())

        if sobel_threshold.get() > 0:
            transformedImage = caer.core.cv.cvtColor(
                transformedImage, caer.core.cv.COLOR_RGB2GRAY)
            sobelKernel = sobel_threshold.get() if sobel_threshold.get(
            ) % 2 != 0 else sobel_threshold.get() + 1  # values 1, 3 and 5
            dx = dy = sobel_threshold.get() - 2 if sobel_threshold.get(
            ) > 2 else sobel_threshold.get()
            sobelx = caer.core.cv.Sobel(transformedImage,
                                        caer.core.cv.IMREAD_GRAYSCALE,
                                        dx,
                                        0,
                                        ksize=sobelKernel)
            sobely = caer.core.cv.Sobel(transformedImage,
                                        caer.core.cv.IMREAD_GRAYSCALE,
                                        0,
                                        dy,
                                        ksize=sobelKernel)
            transformedImage = caer.core.cv.bitwise_or(sobelx, sobely)
            transformedImage = caer.core.cv.cvtColor(
                transformedImage, caer.core.cv.COLOR_GRAY2RGB)

        if show_edges.get() == 1:
            transformedImage = caer.core.cv.cvtColor(
                transformedImage, caer.core.cv.COLOR_RGB2GRAY)
            transformedImage = caer.core.cv.Canny(transformedImage,
                                                  low_threshold.get(),
                                                  low_threshold.get() * 2)
            transformedImage = caer.core.cv.cvtColor(
                transformedImage, caer.core.cv.COLOR_GRAY2RGB)

        if show_emboss.get() == 1:
            transformedImage = caer.core.cv.filter2D(
                transformedImage, -1, embossKernel) + emboss.get()

        if flip_H:
            transformedImage = caer.transforms.hflip(transformedImage)

        if flip_V:
            transformedImage = caer.transforms.vflip(transformedImage)

        if rotationApplied:
            show_rotated_image(True)
        else:
            image_show(transformedImage)