画処理効果を見比べる2

・画像ファイルの指定読み出し

・画像の加工1(比較画像を出す)

・加工後の画像の解析

(・それぞれの画像の表示と保存)

を行います。file名:Base.py

途中で入力を求められます。0<aa<bb<255の整数で指定してください。

aa=黒引き階調:最小階調へ引き下げる階調

bb=白とび階調:最大階調へ引き上げる階調

ーーーーー以下コードーーーーー

import numpy as np
import cv2
import sys
import os, tkinter, tkinter.filedialog, tkinter.messagebox

#guiからファイルオープンする関数
def f_opengui():
  root = tkinter.Tk()
  root.withdraw()
  fTyp = [("","*")]
  iDir = os.path.abspath(os.path.dirname(__file__))
  file = tkinter.filedialog.askopenfilename(filetypes = fTyp,initialdir = iDir)
  return file
################

#----ここから本文----#
img=cv2.imread(f_opengui(),1)
####以下は直接書き込みの場合
#基本の確認
#img=cv2.imread('c:/temp/ts.jpg',1)

#元ファイルを表示
cv2.imshow('Base',img)
cv2.waitKey(1)      

img2=img #編集する画の入れ物
img3=img

#取り込んだ絵のサイズ取得
xm=len(img)
ym=len(img[0])
zm=len(img[0,0])

#ここから今回の画処理専用内容
aa=input("黒引きaa=   ")
aa=int(aa)
print(aa)

bb=input("白とびbb=")
bb=int(bb)
print(bb)

##############################################

#imgを加工
for yy in range(ym):
  for xx in range(xm):
    for zz in range(zm):
      if (img[xx,yy,zz]*255/(bb-aa)-255*aa/(bb-aa))<0:
        img2[xx,yy,zz]=0
      elif (img[xx,yy,zz]*255/(bb-aa)-255*aa/(bb-aa))>255:
        img2[xx,yy,zz]=255
      else:
        img2[xx,yy,zz]=img[xx,yy,zz]*255/(bb-aa)-255*aa/(bb-aa)
    zz=0
  xx=0

#加工後の最終処理、元絵とどうするか
img2=img2

#保存と表示
cv2.imwrite('c:/temp/after.jpg',img2)
cv2.imshow('After',img2)

#imgを加工
for yy in range(ym):
  for xx in range(xm):
      if img[xx,yy,0]==255 and img[xx,yy,1]==255 and img[xx,yy,2]==255:
        img3[xx,yy]=[0,0,255]
xx=0

#保存と表示
cv2.imwrite('c:/temp/saturation_area.jpg',img3)
cv2.imshow('sat_area',img3)

cv2.waitKey(0)
-----------------------以上---------------------

aa=50, bb=200とした例

Base

After

Saturation Area

以上です。

ad


タイトルとURLをコピーしました