오른쪽 클릭과 왼쪽 클릭으로 이미지를 지정 폴더로 이동해 보았습니다.
소개
편하게 화상을 분류할 수 있으면-라고 생각하면서 만들었습니다.
만든 것
오른쪽 클릭과 왼쪽 클릭으로 이미지를 지정 폴더로 이동시키는 프로그램을 만들었습니다.
이미지는 카나가와 공과 대학의 표준 이미지 데이터베이스 SIDBA에서 다운로드했습니다.
프로그램을 실행하면 5장의 화상이 표시됩니다.
지구의 이미지를 클릭했습니다. 창이 업데이트됩니다.
클릭 한 지구의 이미지가 이동되었습니다. 이번에는 왼쪽 클릭이므로 L 폴더에 출력됩니다.
코드
imageMover.pyimport cv2
import glob
import shutil
import os
import numpy as np
#画像のサイズは200pxで統一
size = (200, 200)
name = [] #ファイル名
data = [] #ファイルのデータ
coordinates = [] #クリック時の座標
#移動先のフォルダを作成。LとRがそれぞれ左クリックと右クリックに対応。
os.makedirs('./L', exist_ok=True)
os.makedirs('./R', exist_ok=True)
#ファイルの読み込み
for file in glob.glob('*.bmp'):
img = cv2.imread(file)
img = cv2.resize(img, size)
name.append(file)
data.append(img)
#マウスクリック時に実行される関数
def click_event(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
coordinates[0:3] = [x, y, 'L']
if event == cv2.EVENT_RBUTTONDOWN:
coordinates[0:3] = [x, y, 'R']
#画像の枚数
hasWindow = len(data)
#画像の残り枚数が1枚以上の場合に実行
while hasWindow > 0:
img = cv2.hconcat(data[:5])
while(1):
cv2.imshow('img', img)
cv2.setMouseCallback("img", click_event) #クリック時
#クリック時の座標を取得し、対応する画像を移動
if len(coordinates) != 0:
n = coordinates[0]//200
shutil.move(name[n], coordinates[2]+'/'+name[n])
print(F'フォルダ {coordinates[2]} に {name[n]} を移動しました')
data.pop(n)
name.pop(n)
coordinates = []
hasWindow -= 1 #画像の残り枚数を更新
break
#座標を初期化
coordinates = []
#キー入力があるか
key = cv2.waitKey(100) & 0xff
#キーボードかxが押されたらウィンドウを閉じる
if key != 255 or cv2.getWindowProperty('img', cv2.WND_PROP_AUTOSIZE) == -1:
cv2.destroyAllWindows()
exit()
Github에도 업로드하고 있습니다.
결론
수동이 빠르지 않습니까?
결론
화상의 표시수를 늘리면서 더 궁리할 수 있을 것 같네요.
마지막까지 보아 주셔서 감사합니다. 지적 · 코멘트를 기다리고 있습니다.
Reference
이 문제에 관하여(오른쪽 클릭과 왼쪽 클릭으로 이미지를 지정 폴더로 이동해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/isso_w/items/262b14f70124c7eb7849
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
오른쪽 클릭과 왼쪽 클릭으로 이미지를 지정 폴더로 이동시키는 프로그램을 만들었습니다.
이미지는 카나가와 공과 대학의 표준 이미지 데이터베이스 SIDBA에서 다운로드했습니다.
프로그램을 실행하면 5장의 화상이 표시됩니다.
지구의 이미지를 클릭했습니다. 창이 업데이트됩니다.
클릭 한 지구의 이미지가 이동되었습니다. 이번에는 왼쪽 클릭이므로 L 폴더에 출력됩니다.
코드
imageMover.pyimport cv2
import glob
import shutil
import os
import numpy as np
#画像のサイズは200pxで統一
size = (200, 200)
name = [] #ファイル名
data = [] #ファイルのデータ
coordinates = [] #クリック時の座標
#移動先のフォルダを作成。LとRがそれぞれ左クリックと右クリックに対応。
os.makedirs('./L', exist_ok=True)
os.makedirs('./R', exist_ok=True)
#ファイルの読み込み
for file in glob.glob('*.bmp'):
img = cv2.imread(file)
img = cv2.resize(img, size)
name.append(file)
data.append(img)
#マウスクリック時に実行される関数
def click_event(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
coordinates[0:3] = [x, y, 'L']
if event == cv2.EVENT_RBUTTONDOWN:
coordinates[0:3] = [x, y, 'R']
#画像の枚数
hasWindow = len(data)
#画像の残り枚数が1枚以上の場合に実行
while hasWindow > 0:
img = cv2.hconcat(data[:5])
while(1):
cv2.imshow('img', img)
cv2.setMouseCallback("img", click_event) #クリック時
#クリック時の座標を取得し、対応する画像を移動
if len(coordinates) != 0:
n = coordinates[0]//200
shutil.move(name[n], coordinates[2]+'/'+name[n])
print(F'フォルダ {coordinates[2]} に {name[n]} を移動しました')
data.pop(n)
name.pop(n)
coordinates = []
hasWindow -= 1 #画像の残り枚数を更新
break
#座標を初期化
coordinates = []
#キー入力があるか
key = cv2.waitKey(100) & 0xff
#キーボードかxが押されたらウィンドウを閉じる
if key != 255 or cv2.getWindowProperty('img', cv2.WND_PROP_AUTOSIZE) == -1:
cv2.destroyAllWindows()
exit()
Github에도 업로드하고 있습니다.
결론
수동이 빠르지 않습니까?
결론
화상의 표시수를 늘리면서 더 궁리할 수 있을 것 같네요.
마지막까지 보아 주셔서 감사합니다. 지적 · 코멘트를 기다리고 있습니다.
Reference
이 문제에 관하여(오른쪽 클릭과 왼쪽 클릭으로 이미지를 지정 폴더로 이동해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/isso_w/items/262b14f70124c7eb7849
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import cv2
import glob
import shutil
import os
import numpy as np
#画像のサイズは200pxで統一
size = (200, 200)
name = [] #ファイル名
data = [] #ファイルのデータ
coordinates = [] #クリック時の座標
#移動先のフォルダを作成。LとRがそれぞれ左クリックと右クリックに対応。
os.makedirs('./L', exist_ok=True)
os.makedirs('./R', exist_ok=True)
#ファイルの読み込み
for file in glob.glob('*.bmp'):
img = cv2.imread(file)
img = cv2.resize(img, size)
name.append(file)
data.append(img)
#マウスクリック時に実行される関数
def click_event(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
coordinates[0:3] = [x, y, 'L']
if event == cv2.EVENT_RBUTTONDOWN:
coordinates[0:3] = [x, y, 'R']
#画像の枚数
hasWindow = len(data)
#画像の残り枚数が1枚以上の場合に実行
while hasWindow > 0:
img = cv2.hconcat(data[:5])
while(1):
cv2.imshow('img', img)
cv2.setMouseCallback("img", click_event) #クリック時
#クリック時の座標を取得し、対応する画像を移動
if len(coordinates) != 0:
n = coordinates[0]//200
shutil.move(name[n], coordinates[2]+'/'+name[n])
print(F'フォルダ {coordinates[2]} に {name[n]} を移動しました')
data.pop(n)
name.pop(n)
coordinates = []
hasWindow -= 1 #画像の残り枚数を更新
break
#座標を初期化
coordinates = []
#キー入力があるか
key = cv2.waitKey(100) & 0xff
#キーボードかxが押されたらウィンドウを閉じる
if key != 255 or cv2.getWindowProperty('img', cv2.WND_PROP_AUTOSIZE) == -1:
cv2.destroyAllWindows()
exit()
수동이 빠르지 않습니까?
결론
화상의 표시수를 늘리면서 더 궁리할 수 있을 것 같네요.
마지막까지 보아 주셔서 감사합니다. 지적 · 코멘트를 기다리고 있습니다.
Reference
이 문제에 관하여(오른쪽 클릭과 왼쪽 클릭으로 이미지를 지정 폴더로 이동해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/isso_w/items/262b14f70124c7eb7849
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(오른쪽 클릭과 왼쪽 클릭으로 이미지를 지정 폴더로 이동해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/isso_w/items/262b14f70124c7eb7849텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)