This photo and video was token using Raspberry Pi HQ Camera + Tamron Adaptall-2 SP 500mm f8 (55BB).
using Nikon-C adapter
In my usage scenario: The Raspberry Pi 4B/8G is installed with HQ Camera Module (mount with manual focus lens). Remote control with Android with xrdp/Microsoft Remote Desktop. Such that I can control and change setting on remote Android device running Python code, adjust focus/aperture on the lens, and check the effect on local HDMI preview at real-time.
import sys
import picamera
from pkg_resources import require
import time
"""
ref: Picamera
https://picamera.readthedocs.io/en/release-1.13/
"""
#from tkinter import *
#tkinter for Python 3
import tkinter as tk
from tkinter import ttk
def close_window():
#close tasks
camera.close()
print("Camera closed")
print("close_window()")
print("Window closed")
root.destroy()
#event callback functions
def evStartPreviewBtnPressed():
print("Start Preview")
camera.start_preview()
def evStopPreviewBtnPressed():
print("Stop Preview")
camera.stop_preview()
def evCaptureBtnPressed():
print("Capture")
timeStamp = time.strftime("%Y%m%d-%H%M%S")
targetPath="/home/pi/Desktop/img_"+timeStamp+".jpg"
print(targetPath)
camera.capture(targetPath)
def cmdScaleSharpness(new_value):
camera.sharpness = scaleSharpness.get()
print("sharpness: " + str(camera.sharpness))
def cmdScaleContrast(new_value):
camera.contrast = scaleContrast.get()
print("contrast: " + str(camera.contrast))
def cmdScaleBrightness(new_value):
camera.brightness = scaleBrightness.get()
print("brightness: " + str(camera.brightness))
def cmdScaleSaturation(new_value):
camera.saturation = scaleSaturation.get()
print("saturation: " + str(camera.saturation))
def cmdScaleExpCompensation(NEW_VALUE):
camera.exposure_compensation = scaleExpCompensation.get()
print("exposure_compensation: " + str(camera.exposure_compensation))
def cmdRB_Iso():
camera.iso = varIso.get()
print("iso: " + str(camera.iso))
print(sys.version)
print(require('picamera'))
strInfo = str(sys.version) + str(require('picamera'))
type(sys.version)
type(require('picamera'))
#Prepare camera
camera = picamera.PiCamera()
#set default
camera.sharpness = +5
camera.contrast = 0
camera.brightness = 50
camera.saturation = 0
camera.iso = 100
camera.video_stabilization = False
camera.exposure_compensation = 0
camera.exposure_mode = 'auto'
camera.meter_mode = 'average'
camera.awb_mode = 'auto'
camera.image_effect = 'none'
camera.color_effects = None
camera.rotation = 0
camera.hflip = False
camera.vflip = False
camera.crop = (0.0, 0.0, 1.0, 1.0)
# not work for HQ
#camera.resolution = (4056, 3040) # HQ
#camera.resolution = (2592, 1944) # V1
camera.resolution = (3280, 2464) # V2
#end of set default
SCALE_WIDTH = 940;
#Prepare GUI
root = tk.Tk()
#root.geometry("650x550")
root.geometry("960x800")
root.wm_title("rpiCam (@2021-06-17)")
root.protocol("WM_DELETE_WINDOW", close_window)
labelInfo = tk.Label(root,
text=strInfo, fg="gray",
font=("Helvetica", 14))
labelInfo.pack()
#Main control
frameMain = tk.Frame(root, bg="lightgray")
btnStartPreview = tk.Button(frameMain, text="Start Preview",
command=evStartPreviewBtnPressed)
btnStopPreview = tk.Button(frameMain, text="Stop Preview",
command=evStopPreviewBtnPressed)
btnStartPreview.grid(row=2, column=0, sticky=tk.W+tk.E)
btnStopPreview.grid(row=2, column=1, sticky=tk.W+tk.E)
btnCapture = tk.Button(frameMain, text="Capture",
command=evCaptureBtnPressed)
btnCapture.grid(row=3, columnspan=2, sticky=tk.W+tk.E)
frameMain.pack(padx=10,pady=10)
#Setting
notebook = ttk.Notebook(root)
frame1 = ttk.Frame(notebook)
frame2 = ttk.Frame(notebook)
frame3 = ttk.Frame(notebook)
notebook.add(frame1, text='Setting 1')
notebook.add(frame2, text='Setting 2')
notebook.add(frame3, text='Setting 3')
notebook.pack()
lfSharpness = ttk.LabelFrame(frame1, text="sharpness")
lfSharpness.pack(fill="x", expand="no", anchor=tk.N)
scaleSharpness = tk.Scale(
lfSharpness,
from_=-100, to=100,
length=SCALE_WIDTH,
orient=tk.HORIZONTAL,
command=cmdScaleSharpness)
scaleSharpness.set(camera.sharpness)
scaleSharpness.pack()
lfContrast = ttk.LabelFrame(frame1, text="contrast")
lfContrast.pack(fill="x", expand="no", anchor=tk.N)
scaleContrast = tk.Scale(
lfContrast,
from_=-100, to=100,
length=SCALE_WIDTH,
orient=tk.HORIZONTAL,
command=cmdScaleContrast)
scaleContrast.set(camera.contrast)
scaleContrast.pack()
lfBrightness = ttk.LabelFrame(frame1, text="brightness")
lfBrightness.pack(fill="x", expand="no", anchor=tk.N)
scaleBrightness = tk.Scale(
lfBrightness,
from_=0, to=100,
length=SCALE_WIDTH,
orient=tk.HORIZONTAL,
command=cmdScaleBrightness)
scaleBrightness.set(camera.brightness)
scaleBrightness.pack()
lfSaturation = ttk.LabelFrame(frame1, text="saturation")
lfSaturation.pack(fill="x", expand="no", anchor=tk.N)
scaleSaturation = tk.Scale(
lfSaturation,
from_=-100, to=100,
length=SCALE_WIDTH,
orient=tk.HORIZONTAL,
command=cmdScaleSaturation)
scaleSaturation.set(camera.saturation)
scaleSaturation.pack()
lfExpCompensation = ttk.LabelFrame(frame1, text="exposure_compensation")
lfExpCompensation.pack(fill="x", expand="no", anchor=tk.N)
scaleExpCompensation = tk.Scale(
lfExpCompensation,
from_=-25, to=25,
length=SCALE_WIDTH,
orient=tk.HORIZONTAL,
command=cmdScaleExpCompensation)
scaleExpCompensation.set(camera.exposure_compensation)
scaleExpCompensation.pack()
#==========================================================
varIso = tk.IntVar()
varIso.set(camera.iso)
lfIso = ttk.LabelFrame(frame2, text="iso")
lfIso.pack(fill="x", expand="no", anchor=tk.N)
tk.Radiobutton(lfIso, variable=varIso,
text='0 (auto)',value=0,command=cmdRB_Iso).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfIso, variable=varIso,
text='100',value=100,command=cmdRB_Iso).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfIso, variable=varIso,
text='200',value=200,command=cmdRB_Iso).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfIso, variable=varIso,
text='400',value=400,command=cmdRB_Iso).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfIso, variable=varIso,
text='800',value=800,command=cmdRB_Iso).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfIso, variable=varIso,
text='1600',value=1600,command=cmdRB_Iso).pack(
anchor=tk.W, side=tk.LEFT)
#==========================================================
#-- meter_mode command
def cmdMeterMode():
camera.meter_mode = varMeterMode.get()
print("meter_mode: " + str(camera.meter_mode))
#-- exposure_mode
lfMeterMode = ttk.LabelFrame(frame2, text="meter_mode")
lfMeterMode.pack(fill="x", expand="no", anchor=tk.N)
varMeterMode = tk.StringVar()
varMeterMode.set(camera.meter_mode)
tk.Radiobutton(lfMeterMode, variable=varMeterMode,
text='average',value='average',command=cmdMeterMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfMeterMode, variable=varMeterMode,
text='spot',value='spot',command=cmdMeterMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfMeterMode, variable=varMeterMode,
text='backlit',value='backlit',command=cmdMeterMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfMeterMode, variable=varMeterMode,
text='matrix',value='matrix',command=cmdMeterMode).pack(
anchor=tk.W, side=tk.LEFT)
#==========================================================
#-- exposure_mode command
def cmdEposureMode():
camera.exposure_mode = varExposureMode.get()
print("exposure_mode: " + str(camera.exposure_mode))
#-- exposure_mode
lfExpMode = ttk.LabelFrame(frame2, text="exposure_mode")
lfExpMode.pack(fill="x", expand="no", anchor=tk.N)
varExposureMode = tk.StringVar()
varExposureMode.set(camera.exposure_mode)
lfExposure_mode1 = ttk.Frame(lfExpMode)
lfExposure_mode1.pack(fill="x", expand="no", anchor=tk.N)
lfExposure_mode2 = ttk.Frame(lfExpMode)
lfExposure_mode2.pack(fill="x", expand="no", anchor=tk.N)
tk.Radiobutton(lfExposure_mode1, variable=varExposureMode,
text='off',value='off',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode1, variable=varExposureMode,
text='auto',value='auto',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode1, variable=varExposureMode,
text='night',value='night',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode1, variable=varExposureMode,
text='nightpreview',value='nightpreview',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode1, variable=varExposureMode,
text='backlight',value='backlight',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode1, variable=varExposureMode,
text='spotlight',value='spotlight',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode1, variable=varExposureMode,
text='sports',value='sports',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode1, variable=varExposureMode,
text='snow',value='snow',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode2, variable=varExposureMode,
text='beach',value='beach',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode2, variable=varExposureMode,
text='verylong',value='verylong',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode2, variable=varExposureMode,
text='fixedfps',value='fixedfps',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode2, variable=varExposureMode,
text='antishake',value='antishake',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode2, variable=varExposureMode,
text='fireworks',value='fireworks',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
#==========================================================
#common button handler for ImageEffect without parameter setting,
#simple set camera.image_effect
def butComImageEffect():
camera.image_effect=varImageEffect.get()
labelImageEffectVar.set(camera.image_effect)
#----- ImageEffect 'solarise' ui event
def butImageEffect_solarize():
camera.image_effect=varImageEffect.get()
if cbSolarize_yuv_Var.get():
yuv = 1
else:
yuv = 0
solarize_para = (yuv,
scSolarize_x0_Var.get(),
scSolarize_y0_Var.get(),
scSolarize_y1_Var.get(),
scSolarize_y2_Var.get())
camera.image_effect_params = solarize_para
labelImageEffectVar.set(camera.image_effect +
" " + str(camera.image_effect_params))
def ev_solarizePara(new_value=None):
varImageEffect.set("solarize")
butImageEffect_solarize()
#----- ImageEffect 'watercolor' ui event ---
def butImageEffect_watercolor():
camera.image_effect=varImageEffect.get()
if cbWatercolor_uv_Var.get():
watercolor_para = (scWatercolor_u_Var.get(),
scWatercolor_v_Var.get())
camera.image_effect_params = watercolor_para
else:
watercolor_para = ()
camera.image_effect_params = watercolor_para
labelImageEffectVar.set(camera.image_effect +
" " + str(camera.image_effect_params))
def ev_watercolorPara(new_value=None):
varImageEffect.set("watercolor")
butImageEffect_watercolor()
#----- ImageEffect 'film' ui event ---
def butImageEffect_film():
camera.image_effect=varImageEffect.get()
film_para = (scFilm_strength_Var.get(),
scFilm_u_Var.get(),
scFilm_v_Var.get())
camera.image_effect_params = film_para
labelImageEffectVar.set(camera.image_effect +
" " + str(camera.image_effect_params))
def ev_filmPara(new_value=None):
varImageEffect.set("film")
butImageEffect_film()
#----- ImageEffect 'blur' ui event ---
def butImageEffect_blur():
camera.image_effect=varImageEffect.get()
camera.image_effect_params = scBlur_size_Var.get()
labelImageEffectVar.set(camera.image_effect +
" " + str(camera.image_effect_params))
def ev_blurPara(new_value=None):
varImageEffect.set("blur")
butImageEffect_blur()
#----- ImageEffect 'colorswap' ui event ---
def butImageEffect_colorswap():
camera.image_effect=varImageEffect.get()
camera.image_effect_params = cbColorswap_dir_Var.get()
labelImageEffectVar.set(camera.image_effect +
" " + str(camera.image_effect_params))
def ev_colorswapPara(new_value=None):
varImageEffect.set("colorswap")
butImageEffect_colorswap()
#----- ImageEffect 'posterise' ui event ---
def butImageEffect_posterise():
camera.image_effect=varImageEffect.get()
camera.image_effect_params = scPosterise_steps_Var.get()
labelImageEffectVar.set(camera.image_effect +
" " + str(camera.image_effect_params))
def ev_posterisePara(new_value=None):
varImageEffect.set("posterise")
butImageEffect_posterise()
#----- ImageEffect 'colorpoint' ui event ---
def butImageEffect_colorpoint():
camera.image_effect=varImageEffect.get()
camera.image_effect_params = quadrantVar.get()
labelImageEffectVar.set(camera.image_effect +
" " + str(camera.image_effect_params))
def ev_colorpointPara(new_value=None):
varImageEffect.set("colorpoint")
butImageEffect_colorpoint()
#----- ImageEffect 'colorbalance' ui event ---
def butImageEffect_colorbalance():
camera.image_effect=varImageEffect.get()
colorbalance_para = (scColorbalance_lens_Var.get(),
scColorbalance_r_Var.get(),
scColorbalance_g_Var.get(),
scColorbalance_b_Var.get(),
scColorbalance_u_Var.get(),
scColorbalance_v_Var.get())
camera.image_effect_params = colorbalance_para
labelImageEffectVar.set(camera.image_effect +
" " + str(camera.image_effect_params))
def ev_colorbalancePara(new_value=None):
varImageEffect.set("colorbalance")
butImageEffect_colorbalance()
#-----------------------------------------------------
#-----------------------------------------------------
# Tab Image Effect
varImageEffect = tk.StringVar()
labelImageEffectVar = tk.StringVar()
image_effect_setting = camera.image_effect
varImageEffect.set(image_effect_setting)
labelImageEffectVar.set(image_effect_setting)
tk.Label(frame3, textvariable=labelImageEffectVar).pack(anchor=tk.N)
#-- image_effect
lfNoParaOpts1 = ttk.Frame(frame3)
lfNoParaOpts1.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lfNoParaOpts1, variable=varImageEffect,
text='none',value='none',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts1, variable=varImageEffect,
text='negative',value='negative',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts1, variable=varImageEffect,
text='sketch',value='sketch',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts1, variable=varImageEffect,
text='denoise',value='denoise',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts1, variable=varImageEffect,
text='emboss',value='emboss',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts1, variable=varImageEffect,
text='oilpaint',value='oilpaint',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts1, variable=varImageEffect,
text='hatch',value='hatch',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts1, variable=varImageEffect,
text='gpen',value='gpen',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
lfNoParaOpts2 = ttk.Frame(frame3)
lfNoParaOpts2.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lfNoParaOpts2, variable=varImageEffect,
text='pastel',value='pastel',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts2, variable=varImageEffect,
text='saturation',value='saturation',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts2, variable=varImageEffect,
text='washedout',value='washedout',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts2, variable=varImageEffect,
text='cartoon',value='cartoon',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts2, variable=varImageEffect,
text='deinterlace1',value='deinterlace1',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts2, variable=varImageEffect,
text='deinterlace2',value='deinterlace2',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
lfSolarize = ttk.LabelFrame(frame3, text="solarize")
lfSolarize.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lfSolarize, variable=varImageEffect,
text='solarize',value='solarize',command=butImageEffect_solarize).pack(
anchor=tk.W, side=tk.LEFT)
cbSolarize_yuv_Var = tk.BooleanVar()
tk.Checkbutton(lfSolarize, text="yuv",
variable=cbSolarize_yuv_Var, command=ev_solarizePara).pack(
anchor=tk.W, side=tk.LEFT)
scSolarize_x0_Var = tk.IntVar()
scSolarize_x0_Var.set(128)
tk.Scale(lfSolarize, from_=0, to=255,
orient=tk.HORIZONTAL, length=200, label="x0",
variable=scSolarize_x0_Var, command=ev_solarizePara).pack(
anchor=tk.W, side=tk.LEFT)
scSolarize_y0_Var = tk.IntVar()
scSolarize_y0_Var.set(128)
tk.Scale(lfSolarize, from_=0, to=255,
orient=tk.HORIZONTAL, length=200, label="y0",
variable=scSolarize_y0_Var, command=ev_solarizePara).pack(
anchor=tk.W, side=tk.LEFT)
scSolarize_y1_Var = tk.IntVar()
scSolarize_y1_Var.set(128)
tk.Scale(lfSolarize, from_=0, to=255,
orient=tk.HORIZONTAL, length=200, label="y1",
variable=scSolarize_y1_Var, command=ev_solarizePara).pack(
anchor=tk.W, side=tk.LEFT)
scSolarize_y2_Var = tk.IntVar()
scSolarize_y2_Var.set(0)
tk.Scale(lfSolarize, from_=0, to=255,
orient=tk.HORIZONTAL, length=200, label="y2",
variable=scSolarize_y2_Var, command=ev_solarizePara).pack(
anchor=tk.W, side=tk.LEFT)
lfwatercolor = ttk.LabelFrame(frame3, text="watercolor")
lfwatercolor.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lfwatercolor, variable=varImageEffect,
text='watercolor',value='watercolor',command=butImageEffect_watercolor
).pack(anchor=tk.W, side=tk.LEFT)
cbWatercolor_uv_Var = tk.BooleanVar()
cbWatercolor_uv_Var.set(False)
tk.Checkbutton(lfwatercolor, text="uv",
variable=cbWatercolor_uv_Var, command=ev_watercolorPara).pack(
anchor=tk.W, side=tk.LEFT)
scWatercolor_u_Var = tk.IntVar()
scWatercolor_u_Var.set(0)
tk.Scale(lfwatercolor, from_=0, to=255,
orient=tk.HORIZONTAL, length=200, label="u",
variable=scWatercolor_u_Var, command=ev_watercolorPara).pack(
anchor=tk.W, side=tk.LEFT)
scWatercolor_v_Var = tk.IntVar()
scWatercolor_v_Var.set(0)
tk.Scale(lfwatercolor, from_=0, to=255,
orient=tk.HORIZONTAL, length=200, label="v",
variable=scWatercolor_v_Var, command=ev_watercolorPara).pack(
anchor=tk.W, side=tk.LEFT)
lffilm = ttk.LabelFrame(frame3, text="film")
lffilm.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lffilm, variable=varImageEffect,
text='film',value='film',command=butImageEffect_film).pack(
anchor=tk.W, side=tk.LEFT)
scFilm_strength_Var = tk.IntVar()
scFilm_strength_Var.set(0)
tk.Scale(lffilm, from_=0, to=255,
orient=tk.HORIZONTAL, length=200, label="strength",
variable=scFilm_strength_Var, command=ev_filmPara).pack(
anchor=tk.W, side=tk.LEFT)
scFilm_u_Var = tk.IntVar()
scFilm_u_Var.set(0)
tk.Scale(lffilm, from_=0, to=255,
orient=tk.HORIZONTAL, length=200, label="u",
variable=scFilm_u_Var, command=ev_filmPara).pack(anchor=tk.W, side=tk.LEFT)
scFilm_v_Var = tk.IntVar()
scFilm_v_Var.set(0)
tk.Scale(lffilm, from_=0, to=255,
orient=tk.HORIZONTAL, length=200, label="v",
variable=scFilm_v_Var, command=ev_filmPara).pack(anchor=tk.W, side=tk.LEFT)
lfblur = ttk.LabelFrame(frame3, text="blur")
lfblur.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lfblur, variable=varImageEffect,
text='blur',value='blur',command=butImageEffect_blur).pack(
anchor=tk.W, side=tk.LEFT)
scBlur_size_Var = tk.IntVar()
scBlur_size_Var.set(1)
tk.Scale(lfblur, from_=1, to=2,
orient=tk.HORIZONTAL, length=100, label="size",
variable=scBlur_size_Var, command=ev_blurPara).pack(anchor=tk.W, side=tk.LEFT)
lfcolorswap = ttk.LabelFrame(frame3, text="colorswap")
lfcolorswap.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lfcolorswap, variable=varImageEffect,
text='colorswap',value='colorswap',command=butImageEffect_colorswap).pack(
anchor=tk.W, side=tk.LEFT)
cbColorswap_dir_Var = tk.BooleanVar()
cbColorswap_dir_Var.set(False)
tk.Checkbutton(lfcolorswap, text="dir - 0:RGB to BGR/1:RGB to BRG",
variable=cbColorswap_dir_Var, command=ev_colorswapPara).pack(
anchor=tk.W, side=tk.LEFT)
lfposterise = ttk.LabelFrame(frame3, text="posterise")
lfposterise.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lfposterise, variable=varImageEffect,
text='posterise',value='posterise',command=butImageEffect_posterise).pack(
anchor=tk.W, side=tk.LEFT)
scPosterise_steps_Var = tk.IntVar()
scPosterise_steps_Var.set(4)
tk.Scale(lfposterise, from_=2, to=32,
orient=tk.HORIZONTAL, length=200, label="steps",
variable=scPosterise_steps_Var, command=ev_posterisePara).pack(
anchor=tk.W, side=tk.LEFT)
lfcolorpoint = ttk.LabelFrame(frame3, text="colorpoint")
lfcolorpoint.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lfcolorpoint, variable=varImageEffect,
text='colorpoint',value='colorpoint',command=butImageEffect_colorpoint).pack(
anchor=tk.W, side=tk.LEFT)
quadrantVar = tk.IntVar()
quadrantVar.set(0)
tk.Radiobutton(lfcolorpoint, text="green",
variable=quadrantVar, value=0, command=ev_colorpointPara).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfcolorpoint, text="red/yellow",
variable=quadrantVar, value=1, command=ev_colorpointPara).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfcolorpoint, text="blue",
variable=quadrantVar, value=2, command=ev_colorpointPara).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfcolorpoint, text="purple",
variable=quadrantVar, value=3, command=ev_colorpointPara).pack(
anchor=tk.W, side=tk.LEFT)
lfcolorbalance = ttk.LabelFrame(frame3, text="colorbalance: I can't see any effect!")
lfcolorbalance.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lfcolorbalance, variable=varImageEffect,
text='colorbalance',value='colorbalance',command=butImageEffect_colorbalance).pack(
anchor=tk.W, side=tk.LEFT)
scColorbalance_lens_Var = tk.DoubleVar()
scColorbalance_lens_Var.set(0)
tk.Scale(lfcolorbalance, from_=0, to=256,
orient=tk.HORIZONTAL, length=140, label="lens",
variable=scColorbalance_lens_Var, command=ev_colorbalancePara).pack(
anchor=tk.W, side=tk.LEFT)
scColorbalance_r_Var = tk.DoubleVar()
scColorbalance_r_Var.set(1)
tk.Scale(lfcolorbalance, from_=0, to=256,
orient=tk.HORIZONTAL, length=140, label="r",
variable=scColorbalance_r_Var, command=ev_colorbalancePara).pack(
anchor=tk.W, side=tk.LEFT)
scColorbalance_g_Var = tk.DoubleVar()
scColorbalance_g_Var.set(1)
tk.Scale(lfcolorbalance, from_=0, to=256,
orient=tk.HORIZONTAL, length=140, label="g",
variable=scColorbalance_g_Var, command=ev_colorbalancePara).pack(
anchor=tk.W, side=tk.LEFT)
scColorbalance_b_Var = tk.DoubleVar()
scColorbalance_b_Var.set(1)
tk.Scale(lfcolorbalance, from_=0, to=256,
orient=tk.HORIZONTAL, length=140, label="b",
variable=scColorbalance_b_Var, command=ev_colorbalancePara).pack(
anchor=tk.W, side=tk.LEFT)
scColorbalance_u_Var = tk.IntVar()
scColorbalance_u_Var.set(0)
tk.Scale(lfcolorbalance, from_=0, to=255,
orient=tk.HORIZONTAL, length=140, label="u",
variable=scColorbalance_u_Var, command=ev_colorbalancePara).pack(
anchor=tk.W, side=tk.LEFT)
scColorbalance_v_Var = tk.IntVar()
scColorbalance_v_Var.set(0)
tk.Scale(lfcolorbalance, from_=0, to=255,
orient=tk.HORIZONTAL, length=140, label="v",
variable=scColorbalance_v_Var, command=ev_colorbalancePara).pack(
anchor=tk.W, side=tk.LEFT)
#==========================================================
root.mainloop()
print("- bye -")
import sys
import picamera
from pkg_resources import require
import time
"""
ref: Picamera
https://picamera.readthedocs.io/en/release-1.13/
"""
#from tkinter import *
#tkinter for Python 3
import tkinter as tk
from tkinter import ttk
def close_window():
#close tasks
camera.close()
print("Camera closed")
print("close_window()")
print("Window closed")
root.destroy()
#event callback functions
def evStartPreviewBtnPressed():
print("Start Preview")
camera.start_preview()
def evStopPreviewBtnPressed():
print("Stop Preview")
camera.stop_preview()
"""
def evCaptureBtnPressed():
print("Capture")
timeStamp = time.strftime("%Y%m%d-%H%M%S")
targetPath="/home/pi/Desktop/img_"+timeStamp+".jpg"
print(targetPath)
camera.capture(targetPath)
"""
def evCaptureVideoBtnPressed():
if btnCapture.config('relief')[-1] == 'sunken':
btnCapture.config(relief="raised")
btnCapture['text'] = 'Start Capture Video'
print("Stop Capture Video")
camera.stop_recording()
else:
btnCapture.config(relief="sunken")
btnCapture['text'] = 'Stop Capture Video'
print("Start Capture Video")
timeStamp = time.strftime("%Y%m%d-%H%M%S")
targetPath="/home/pi/Desktop/vid_"+timeStamp+".h264"
print(targetPath)
camera.start_recording(targetPath, format='h264');
def cmdScaleSharpness(new_value):
camera.sharpness = scaleSharpness.get()
print("sharpness: " + str(camera.sharpness))
def cmdScaleContrast(new_value):
camera.contrast = scaleContrast.get()
print("contrast: " + str(camera.contrast))
def cmdScaleBrightness(new_value):
camera.brightness = scaleBrightness.get()
print("brightness: " + str(camera.brightness))
def cmdScaleSaturation(new_value):
camera.saturation = scaleSaturation.get()
print("saturation: " + str(camera.saturation))
def cmdScaleExpCompensation(NEW_VALUE):
camera.exposure_compensation = scaleExpCompensation.get()
print("exposure_compensation: " + str(camera.exposure_compensation))
def cmdRB_Iso():
camera.iso = varIso.get()
print("iso: " + str(camera.iso))
print(sys.version)
print(require('picamera'))
strInfo = str(sys.version) + str(require('picamera'))
type(sys.version)
type(require('picamera'))
#Prepare camera
camera = picamera.PiCamera()
#set default
camera.sharpness = +5
camera.contrast = 0
camera.brightness = 50
camera.saturation = 0
camera.iso = 100
camera.video_stabilization = False
camera.exposure_compensation = 0
camera.exposure_mode = 'auto'
camera.meter_mode = 'average'
camera.awb_mode = 'auto'
camera.image_effect = 'none'
camera.color_effects = None
camera.rotation = 0
camera.hflip = False
camera.vflip = False
camera.crop = (0.0, 0.0, 1.0, 1.0)
# not work for HQ
#camera.resolution = (4056, 3040) # HQ
#camera.resolution = (2592, 1944) # V1
#camera.resolution = (3280, 2464) # V2
camera.resolution = (1920, 1080) # Video
#end of set default
SCALE_WIDTH = 940;
#Prepare GUI
root = tk.Tk()
#root.geometry("650x550")
root.geometry("960x800")
root.wm_title("rpiVid (@2021-06-17)")
root.protocol("WM_DELETE_WINDOW", close_window)
labelInfo = tk.Label(root,
text=strInfo, fg="gray",
font=("Helvetica", 14))
labelInfo.pack()
#Main control
frameMain = tk.Frame(root, bg="lightgray")
btnStartPreview = tk.Button(frameMain, text="Start Preview",
command=evStartPreviewBtnPressed)
btnStopPreview = tk.Button(frameMain, text="Stop Preview",
command=evStopPreviewBtnPressed)
btnStartPreview.grid(row=2, column=0, sticky=tk.W+tk.E)
btnStopPreview.grid(row=2, column=1, sticky=tk.W+tk.E)
"""
btnCapture = tk.Button(frameMain, text="Capture",
command=evCaptureBtnPressed)
"""
btnCapture = tk.Button(frameMain, text="Start Capture Video",
relief="raised",
command=evCaptureVideoBtnPressed)
btnCapture.grid(row=3, columnspan=2, sticky=tk.W+tk.E)
frameMain.pack(padx=10,pady=10)
#Setting
notebook = ttk.Notebook(root)
frame1 = ttk.Frame(notebook)
frame2 = ttk.Frame(notebook)
frame3 = ttk.Frame(notebook)
notebook.add(frame1, text='Setting 1')
notebook.add(frame2, text='Setting 2')
notebook.add(frame3, text='Setting 3')
notebook.pack()
lfSharpness = ttk.LabelFrame(frame1, text="sharpness")
lfSharpness.pack(fill="x", expand="no", anchor=tk.N)
scaleSharpness = tk.Scale(
lfSharpness,
from_=-100, to=100,
length=SCALE_WIDTH,
orient=tk.HORIZONTAL,
command=cmdScaleSharpness)
scaleSharpness.set(camera.sharpness)
scaleSharpness.pack()
lfContrast = ttk.LabelFrame(frame1, text="contrast")
lfContrast.pack(fill="x", expand="no", anchor=tk.N)
scaleContrast = tk.Scale(
lfContrast,
from_=-100, to=100,
length=SCALE_WIDTH,
orient=tk.HORIZONTAL,
command=cmdScaleContrast)
scaleContrast.set(camera.contrast)
scaleContrast.pack()
lfBrightness = ttk.LabelFrame(frame1, text="brightness")
lfBrightness.pack(fill="x", expand="no", anchor=tk.N)
scaleBrightness = tk.Scale(
lfBrightness,
from_=0, to=100,
length=SCALE_WIDTH,
orient=tk.HORIZONTAL,
command=cmdScaleBrightness)
scaleBrightness.set(camera.brightness)
scaleBrightness.pack()
lfSaturation = ttk.LabelFrame(frame1, text="saturation")
lfSaturation.pack(fill="x", expand="no", anchor=tk.N)
scaleSaturation = tk.Scale(
lfSaturation,
from_=-100, to=100,
length=SCALE_WIDTH,
orient=tk.HORIZONTAL,
command=cmdScaleSaturation)
scaleSaturation.set(camera.saturation)
scaleSaturation.pack()
lfExpCompensation = ttk.LabelFrame(frame1, text="exposure_compensation")
lfExpCompensation.pack(fill="x", expand="no", anchor=tk.N)
scaleExpCompensation = tk.Scale(
lfExpCompensation,
from_=-25, to=25,
length=SCALE_WIDTH,
orient=tk.HORIZONTAL,
command=cmdScaleExpCompensation)
scaleExpCompensation.set(camera.exposure_compensation)
scaleExpCompensation.pack()
#==========================================================
varIso = tk.IntVar()
varIso.set(camera.iso)
lfIso = ttk.LabelFrame(frame2, text="iso")
lfIso.pack(fill="x", expand="no", anchor=tk.N)
tk.Radiobutton(lfIso, variable=varIso,
text='0 (auto)',value=0,command=cmdRB_Iso).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfIso, variable=varIso,
text='100',value=100,command=cmdRB_Iso).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfIso, variable=varIso,
text='200',value=200,command=cmdRB_Iso).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfIso, variable=varIso,
text='400',value=400,command=cmdRB_Iso).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfIso, variable=varIso,
text='800',value=800,command=cmdRB_Iso).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfIso, variable=varIso,
text='1600',value=1600,command=cmdRB_Iso).pack(
anchor=tk.W, side=tk.LEFT)
#==========================================================
#-- meter_mode command
def cmdMeterMode():
camera.meter_mode = varMeterMode.get()
print("meter_mode: " + str(camera.meter_mode))
#-- exposure_mode
lfMeterMode = ttk.LabelFrame(frame2, text="meter_mode")
lfMeterMode.pack(fill="x", expand="no", anchor=tk.N)
varMeterMode = tk.StringVar()
varMeterMode.set(camera.meter_mode)
tk.Radiobutton(lfMeterMode, variable=varMeterMode,
text='average',value='average',command=cmdMeterMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfMeterMode, variable=varMeterMode,
text='spot',value='spot',command=cmdMeterMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfMeterMode, variable=varMeterMode,
text='backlit',value='backlit',command=cmdMeterMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfMeterMode, variable=varMeterMode,
text='matrix',value='matrix',command=cmdMeterMode).pack(
anchor=tk.W, side=tk.LEFT)
#==========================================================
#-- exposure_mode command
def cmdEposureMode():
camera.exposure_mode = varExposureMode.get()
print("exposure_mode: " + str(camera.exposure_mode))
#-- exposure_mode
lfExpMode = ttk.LabelFrame(frame2, text="exposure_mode")
lfExpMode.pack(fill="x", expand="no", anchor=tk.N)
varExposureMode = tk.StringVar()
varExposureMode.set(camera.exposure_mode)
lfExposure_mode1 = ttk.Frame(lfExpMode)
lfExposure_mode1.pack(fill="x", expand="no", anchor=tk.N)
lfExposure_mode2 = ttk.Frame(lfExpMode)
lfExposure_mode2.pack(fill="x", expand="no", anchor=tk.N)
tk.Radiobutton(lfExposure_mode1, variable=varExposureMode,
text='off',value='off',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode1, variable=varExposureMode,
text='auto',value='auto',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode1, variable=varExposureMode,
text='night',value='night',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode1, variable=varExposureMode,
text='nightpreview',value='nightpreview',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode1, variable=varExposureMode,
text='backlight',value='backlight',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode1, variable=varExposureMode,
text='spotlight',value='spotlight',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode1, variable=varExposureMode,
text='sports',value='sports',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode1, variable=varExposureMode,
text='snow',value='snow',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode2, variable=varExposureMode,
text='beach',value='beach',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode2, variable=varExposureMode,
text='verylong',value='verylong',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode2, variable=varExposureMode,
text='fixedfps',value='fixedfps',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode2, variable=varExposureMode,
text='antishake',value='antishake',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfExposure_mode2, variable=varExposureMode,
text='fireworks',value='fireworks',command=cmdEposureMode).pack(
anchor=tk.W, side=tk.LEFT)
#==========================================================
#common button handler for ImageEffect without parameter setting,
#simple set camera.image_effect
def butComImageEffect():
camera.image_effect=varImageEffect.get()
labelImageEffectVar.set(camera.image_effect)
#----- ImageEffect 'solarise' ui event
def butImageEffect_solarize():
camera.image_effect=varImageEffect.get()
if cbSolarize_yuv_Var.get():
yuv = 1
else:
yuv = 0
solarize_para = (yuv,
scSolarize_x0_Var.get(),
scSolarize_y0_Var.get(),
scSolarize_y1_Var.get(),
scSolarize_y2_Var.get())
camera.image_effect_params = solarize_para
labelImageEffectVar.set(camera.image_effect +
" " + str(camera.image_effect_params))
def ev_solarizePara(new_value=None):
varImageEffect.set("solarize")
butImageEffect_solarize()
#----- ImageEffect 'watercolor' ui event ---
def butImageEffect_watercolor():
camera.image_effect=varImageEffect.get()
if cbWatercolor_uv_Var.get():
watercolor_para = (scWatercolor_u_Var.get(),
scWatercolor_v_Var.get())
camera.image_effect_params = watercolor_para
else:
watercolor_para = ()
camera.image_effect_params = watercolor_para
labelImageEffectVar.set(camera.image_effect +
" " + str(camera.image_effect_params))
def ev_watercolorPara(new_value=None):
varImageEffect.set("watercolor")
butImageEffect_watercolor()
#----- ImageEffect 'film' ui event ---
def butImageEffect_film():
camera.image_effect=varImageEffect.get()
film_para = (scFilm_strength_Var.get(),
scFilm_u_Var.get(),
scFilm_v_Var.get())
camera.image_effect_params = film_para
labelImageEffectVar.set(camera.image_effect +
" " + str(camera.image_effect_params))
def ev_filmPara(new_value=None):
varImageEffect.set("film")
butImageEffect_film()
#----- ImageEffect 'blur' ui event ---
def butImageEffect_blur():
camera.image_effect=varImageEffect.get()
camera.image_effect_params = scBlur_size_Var.get()
labelImageEffectVar.set(camera.image_effect +
" " + str(camera.image_effect_params))
def ev_blurPara(new_value=None):
varImageEffect.set("blur")
butImageEffect_blur()
#----- ImageEffect 'colorswap' ui event ---
def butImageEffect_colorswap():
camera.image_effect=varImageEffect.get()
camera.image_effect_params = cbColorswap_dir_Var.get()
labelImageEffectVar.set(camera.image_effect +
" " + str(camera.image_effect_params))
def ev_colorswapPara(new_value=None):
varImageEffect.set("colorswap")
butImageEffect_colorswap()
#----- ImageEffect 'posterise' ui event ---
def butImageEffect_posterise():
camera.image_effect=varImageEffect.get()
camera.image_effect_params = scPosterise_steps_Var.get()
labelImageEffectVar.set(camera.image_effect +
" " + str(camera.image_effect_params))
def ev_posterisePara(new_value=None):
varImageEffect.set("posterise")
butImageEffect_posterise()
#----- ImageEffect 'colorpoint' ui event ---
def butImageEffect_colorpoint():
camera.image_effect=varImageEffect.get()
camera.image_effect_params = quadrantVar.get()
labelImageEffectVar.set(camera.image_effect +
" " + str(camera.image_effect_params))
def ev_colorpointPara(new_value=None):
varImageEffect.set("colorpoint")
butImageEffect_colorpoint()
#----- ImageEffect 'colorbalance' ui event ---
def butImageEffect_colorbalance():
camera.image_effect=varImageEffect.get()
colorbalance_para = (scColorbalance_lens_Var.get(),
scColorbalance_r_Var.get(),
scColorbalance_g_Var.get(),
scColorbalance_b_Var.get(),
scColorbalance_u_Var.get(),
scColorbalance_v_Var.get())
camera.image_effect_params = colorbalance_para
labelImageEffectVar.set(camera.image_effect +
" " + str(camera.image_effect_params))
def ev_colorbalancePara(new_value=None):
varImageEffect.set("colorbalance")
butImageEffect_colorbalance()
#-----------------------------------------------------
#-----------------------------------------------------
# Tab Image Effect
varImageEffect = tk.StringVar()
labelImageEffectVar = tk.StringVar()
image_effect_setting = camera.image_effect
varImageEffect.set(image_effect_setting)
labelImageEffectVar.set(image_effect_setting)
tk.Label(frame3, textvariable=labelImageEffectVar).pack(anchor=tk.N)
#-- image_effect
lfNoParaOpts1 = ttk.Frame(frame3)
lfNoParaOpts1.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lfNoParaOpts1, variable=varImageEffect,
text='none',value='none',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts1, variable=varImageEffect,
text='negative',value='negative',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts1, variable=varImageEffect,
text='sketch',value='sketch',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts1, variable=varImageEffect,
text='denoise',value='denoise',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts1, variable=varImageEffect,
text='emboss',value='emboss',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts1, variable=varImageEffect,
text='oilpaint',value='oilpaint',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts1, variable=varImageEffect,
text='hatch',value='hatch',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts1, variable=varImageEffect,
text='gpen',value='gpen',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
lfNoParaOpts2 = ttk.Frame(frame3)
lfNoParaOpts2.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lfNoParaOpts2, variable=varImageEffect,
text='pastel',value='pastel',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts2, variable=varImageEffect,
text='saturation',value='saturation',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts2, variable=varImageEffect,
text='washedout',value='washedout',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts2, variable=varImageEffect,
text='cartoon',value='cartoon',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts2, variable=varImageEffect,
text='deinterlace1',value='deinterlace1',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfNoParaOpts2, variable=varImageEffect,
text='deinterlace2',value='deinterlace2',command=butComImageEffect).pack(
anchor=tk.W, side=tk.LEFT)
lfSolarize = ttk.LabelFrame(frame3, text="solarize")
lfSolarize.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lfSolarize, variable=varImageEffect,
text='solarize',value='solarize',command=butImageEffect_solarize).pack(
anchor=tk.W, side=tk.LEFT)
cbSolarize_yuv_Var = tk.BooleanVar()
tk.Checkbutton(lfSolarize, text="yuv",
variable=cbSolarize_yuv_Var, command=ev_solarizePara).pack(
anchor=tk.W, side=tk.LEFT)
scSolarize_x0_Var = tk.IntVar()
scSolarize_x0_Var.set(128)
tk.Scale(lfSolarize, from_=0, to=255,
orient=tk.HORIZONTAL, length=200, label="x0",
variable=scSolarize_x0_Var, command=ev_solarizePara).pack(
anchor=tk.W, side=tk.LEFT)
scSolarize_y0_Var = tk.IntVar()
scSolarize_y0_Var.set(128)
tk.Scale(lfSolarize, from_=0, to=255,
orient=tk.HORIZONTAL, length=200, label="y0",
variable=scSolarize_y0_Var, command=ev_solarizePara).pack(
anchor=tk.W, side=tk.LEFT)
scSolarize_y1_Var = tk.IntVar()
scSolarize_y1_Var.set(128)
tk.Scale(lfSolarize, from_=0, to=255,
orient=tk.HORIZONTAL, length=200, label="y1",
variable=scSolarize_y1_Var, command=ev_solarizePara).pack(
anchor=tk.W, side=tk.LEFT)
scSolarize_y2_Var = tk.IntVar()
scSolarize_y2_Var.set(0)
tk.Scale(lfSolarize, from_=0, to=255,
orient=tk.HORIZONTAL, length=200, label="y2",
variable=scSolarize_y2_Var, command=ev_solarizePara).pack(
anchor=tk.W, side=tk.LEFT)
lfwatercolor = ttk.LabelFrame(frame3, text="watercolor")
lfwatercolor.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lfwatercolor, variable=varImageEffect,
text='watercolor',value='watercolor',command=butImageEffect_watercolor
).pack(anchor=tk.W, side=tk.LEFT)
cbWatercolor_uv_Var = tk.BooleanVar()
cbWatercolor_uv_Var.set(False)
tk.Checkbutton(lfwatercolor, text="uv",
variable=cbWatercolor_uv_Var, command=ev_watercolorPara).pack(
anchor=tk.W, side=tk.LEFT)
scWatercolor_u_Var = tk.IntVar()
scWatercolor_u_Var.set(0)
tk.Scale(lfwatercolor, from_=0, to=255,
orient=tk.HORIZONTAL, length=200, label="u",
variable=scWatercolor_u_Var, command=ev_watercolorPara).pack(
anchor=tk.W, side=tk.LEFT)
scWatercolor_v_Var = tk.IntVar()
scWatercolor_v_Var.set(0)
tk.Scale(lfwatercolor, from_=0, to=255,
orient=tk.HORIZONTAL, length=200, label="v",
variable=scWatercolor_v_Var, command=ev_watercolorPara).pack(
anchor=tk.W, side=tk.LEFT)
lffilm = ttk.LabelFrame(frame3, text="film")
lffilm.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lffilm, variable=varImageEffect,
text='film',value='film',command=butImageEffect_film).pack(
anchor=tk.W, side=tk.LEFT)
scFilm_strength_Var = tk.IntVar()
scFilm_strength_Var.set(0)
tk.Scale(lffilm, from_=0, to=255,
orient=tk.HORIZONTAL, length=200, label="strength",
variable=scFilm_strength_Var, command=ev_filmPara).pack(
anchor=tk.W, side=tk.LEFT)
scFilm_u_Var = tk.IntVar()
scFilm_u_Var.set(0)
tk.Scale(lffilm, from_=0, to=255,
orient=tk.HORIZONTAL, length=200, label="u",
variable=scFilm_u_Var, command=ev_filmPara).pack(anchor=tk.W, side=tk.LEFT)
scFilm_v_Var = tk.IntVar()
scFilm_v_Var.set(0)
tk.Scale(lffilm, from_=0, to=255,
orient=tk.HORIZONTAL, length=200, label="v",
variable=scFilm_v_Var, command=ev_filmPara).pack(anchor=tk.W, side=tk.LEFT)
lfblur = ttk.LabelFrame(frame3, text="blur")
lfblur.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lfblur, variable=varImageEffect,
text='blur',value='blur',command=butImageEffect_blur).pack(
anchor=tk.W, side=tk.LEFT)
scBlur_size_Var = tk.IntVar()
scBlur_size_Var.set(1)
tk.Scale(lfblur, from_=1, to=2,
orient=tk.HORIZONTAL, length=100, label="size",
variable=scBlur_size_Var, command=ev_blurPara).pack(anchor=tk.W, side=tk.LEFT)
lfcolorswap = ttk.LabelFrame(frame3, text="colorswap")
lfcolorswap.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lfcolorswap, variable=varImageEffect,
text='colorswap',value='colorswap',command=butImageEffect_colorswap).pack(
anchor=tk.W, side=tk.LEFT)
cbColorswap_dir_Var = tk.BooleanVar()
cbColorswap_dir_Var.set(False)
tk.Checkbutton(lfcolorswap, text="dir - 0:RGB to BGR/1:RGB to BRG",
variable=cbColorswap_dir_Var, command=ev_colorswapPara).pack(
anchor=tk.W, side=tk.LEFT)
lfposterise = ttk.LabelFrame(frame3, text="posterise")
lfposterise.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lfposterise, variable=varImageEffect,
text='posterise',value='posterise',command=butImageEffect_posterise).pack(
anchor=tk.W, side=tk.LEFT)
scPosterise_steps_Var = tk.IntVar()
scPosterise_steps_Var.set(4)
tk.Scale(lfposterise, from_=2, to=32,
orient=tk.HORIZONTAL, length=200, label="steps",
variable=scPosterise_steps_Var, command=ev_posterisePara).pack(
anchor=tk.W, side=tk.LEFT)
lfcolorpoint = ttk.LabelFrame(frame3, text="colorpoint")
lfcolorpoint.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lfcolorpoint, variable=varImageEffect,
text='colorpoint',value='colorpoint',command=butImageEffect_colorpoint).pack(
anchor=tk.W, side=tk.LEFT)
quadrantVar = tk.IntVar()
quadrantVar.set(0)
tk.Radiobutton(lfcolorpoint, text="green",
variable=quadrantVar, value=0, command=ev_colorpointPara).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfcolorpoint, text="red/yellow",
variable=quadrantVar, value=1, command=ev_colorpointPara).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfcolorpoint, text="blue",
variable=quadrantVar, value=2, command=ev_colorpointPara).pack(
anchor=tk.W, side=tk.LEFT)
tk.Radiobutton(lfcolorpoint, text="purple",
variable=quadrantVar, value=3, command=ev_colorpointPara).pack(
anchor=tk.W, side=tk.LEFT)
lfcolorbalance = ttk.LabelFrame(frame3, text="colorbalance: I can't see any effect!")
lfcolorbalance.pack(fill="x", expand="yes", anchor=tk.N)
tk.Radiobutton(lfcolorbalance, variable=varImageEffect,
text='colorbalance',value='colorbalance',command=butImageEffect_colorbalance).pack(
anchor=tk.W, side=tk.LEFT)
scColorbalance_lens_Var = tk.DoubleVar()
scColorbalance_lens_Var.set(0)
tk.Scale(lfcolorbalance, from_=0, to=256,
orient=tk.HORIZONTAL, length=140, label="lens",
variable=scColorbalance_lens_Var, command=ev_colorbalancePara).pack(
anchor=tk.W, side=tk.LEFT)
scColorbalance_r_Var = tk.DoubleVar()
scColorbalance_r_Var.set(1)
tk.Scale(lfcolorbalance, from_=0, to=256,
orient=tk.HORIZONTAL, length=140, label="r",
variable=scColorbalance_r_Var, command=ev_colorbalancePara).pack(
anchor=tk.W, side=tk.LEFT)
scColorbalance_g_Var = tk.DoubleVar()
scColorbalance_g_Var.set(1)
tk.Scale(lfcolorbalance, from_=0, to=256,
orient=tk.HORIZONTAL, length=140, label="g",
variable=scColorbalance_g_Var, command=ev_colorbalancePara).pack(
anchor=tk.W, side=tk.LEFT)
scColorbalance_b_Var = tk.DoubleVar()
scColorbalance_b_Var.set(1)
tk.Scale(lfcolorbalance, from_=0, to=256,
orient=tk.HORIZONTAL, length=140, label="b",
variable=scColorbalance_b_Var, command=ev_colorbalancePara).pack(
anchor=tk.W, side=tk.LEFT)
scColorbalance_u_Var = tk.IntVar()
scColorbalance_u_Var.set(0)
tk.Scale(lfcolorbalance, from_=0, to=255,
orient=tk.HORIZONTAL, length=140, label="u",
variable=scColorbalance_u_Var, command=ev_colorbalancePara).pack(
anchor=tk.W, side=tk.LEFT)
scColorbalance_v_Var = tk.IntVar()
scColorbalance_v_Var.set(0)
tk.Scale(lfcolorbalance, from_=0, to=255,
orient=tk.HORIZONTAL, length=140, label="v",
variable=scColorbalance_v_Var, command=ev_colorbalancePara).pack(
anchor=tk.W, side=tk.LEFT)
#==========================================================
root.mainloop()
print("- bye -")
No comments:
Post a Comment