简体   繁体   English

使用 Opencv python 从图像中裁剪矩形

[英]Cropping rectangle from Image using Opencv python

Im trying to crop rectangle image from screenshot, background for image must be white, Im ending up having black,How can I change that?我试图从屏幕截图中裁剪矩形图像,图像的背景必须是白色,我最终有黑色,我该如何改变它? I want to make histogtam of rgb for the final image and It seems plotting only vertical line on zero, Any kind of help is very important: here is my code:我想为最终图像制作 rgb 直方图,似乎只在零上绘制垂直线,任何帮助都非常重要:这是我的代码:

import cv2 
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg

image = cv2.imread(filename = "Screenshot from 2019-11-08 22-02-27.png")
mask = np.zeros(shape = image.shape, dtype = "uint8")
cv2.rectangle(img = mask, 
    pt1 = (0, 185), pt2 = (1900, 773), 
    color = (255, 255, 255), 
    thickness = -1)



maskedImg = cv2.bitwise_and(src1 = image, src2 = mask)
cv2.imwrite("processed.png", maskedImg)
plt.imshow(maskedImg)
plt.show()


plt.hist(maskedImg.ravel(),256,[0,256]); plt.show()


 import cv2 import numpy as np import matplotlib.pyplot as plt import matplotlib.image as mpimg image = cv2.imread(filename = "1.png") mask = np.zeros(shape = image.shape, dtype = "uint8") cv2.rectangle(img = mask, pt1 = (0, 185), pt2 = (1900, 773), color = (255, 255, 255), thickness = -1) maskedImg = cv2.bitwise_and(src1 = image, src2 = mask) maskedImg[np.where((maskedImg==[0,0,0]).all(axis=2))] = [255,255,255] cv2.imwrite("processed.png", maskedImg) plt.imshow(maskedImg) plt.show()

Convert the black pixel present in the image into white pixel将图像中存在的黑色像素转换为白色像素
Original image原始图像在此处输入图像描述


Crop Image裁剪图像在此处输入图像描述

在此处输入图像描述

 color = ('b','g','r') for i,col in enumerate(color): histr = cv2.calcHist([maskedImg],[i],None,[256],[0,256]) plt.plot(histr,color = col) plt.xlim([0,256]) plt.show()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM