

根据你的描述,我画了个简单的图片,然后用Python计算图中红色矩形框像素面积(以下代码):
#coding:utf-8
import cv2
"""
使用的是python2.7+ Opencv3.3,已经自己跑过一遍,可以运行
"""
#读入该彩色图像
img = cv2.imread('d:/python27_work/images/redSquare.png')
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #转换为灰度图像
#图像进行阈值化,阈值参数可根据自己的图像调整
ret, thresh = cv2.threshold(img_gray,150,190, 0)
#进行轮廓检测
ret, contours, hier=cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
print(len(contours)) #检查一下检测到的轮廓个数
#上述轮廓检测函数返回的轮廓集是缺省的,如果是个矩形只返回四个角点,可根据这个特点寻找目标矩形区域(这么找不严谨,任意四边形的轮廓近似点集也只有4个点)
cnt= [] #创建一个空的轮廓集合
for i in range(len(contours)):
if len(contours[i]) == 4:
cnt.append(contours[i])
#现在有在图中轮廓近似集合啦 cnt,我这个图较简单,到这一步就只有两个轮廓了,一个是图像的边缘矩形,一个就是所要找的轮廓。在通过cv2.contourAera()函数算出矩形轮廓像素面积即可.
#这里要找的轮廓是cnt中第二个
area = cv2.contourArea(cnt[1]) #area既是矩形框像素面积。
print(area)