我正在尝试使用openCV将这个简单的Matlab代码转换为C++:
localstd=sqrt(abs(ifft2(fft2(output).*gf)));
Run Code Online (Sandbox Code Playgroud)
它意味着取矩阵"输出"的fft,将其逐个元素与矩阵"gf"相乘,然后取出它的ifft然后取其大小.
我正在尝试以下简单的代码:
Mat complexI;
dft(output, complexI,cv::DFT_SCALE||DFT_COMPLEX_OUTPUT);
Mat copmlexI2=Mat(n,n,CV_32F);
mulSpectrums(complexI,gf,copmlexI2,DFT_COMPLEX_OUTPUT);
dft(copmlexI2,copmlexI2,cv::DFT_INVERSE||DFT_COMPLEX_OUTPUT);
Mat planes[]= {Mat::zeros(output.size(), CV_32F), Mat::zeros(output.size(), CV_32F)};;
split(copmlexI2, planes); // planes[0] = Re(DFT(I), planes[1] = Im(DFT(I))
magnitude(planes[0], planes[1], planes[0]);// planes[0] = magnitude
Mat localstd = planes[0];
for (int i=0;i<localstd.rows;i++){
for (int j=0;j<localstd.cols;j++){
localstd.at<float>(i,j)= sqrt(localstd.at<float>(i,j));
}
}
for (int i=0;i<localstd.rows;i++){
for (int j=0;j<localstd.cols;j++){
localstd.at<float>(i,j)/= 255;
}
}
Run Code Online (Sandbox Code Playgroud)
这很简单.我正在拿"输出"的dft,将它的频谱乘以"df",然后取出它的ifft.接下来,我将结果分成实数和虚数平面并取大小.最后,我取其中的sqrt并用255除以标准化.
我得到的结果与我在Matlab中获得的结果非常不同.我在这里错过了什么?有关如何修复代码的任何想法?
提前致谢!
我是学生。我的主管问我一个使用图割算法检测食物的项目。
我知道分割和标记是图割算法的应用。但是,当我在网上搜索时,只会发现有关该算法的基本信息。我需要更多详细信息,以便我可以从头开始编写代码。有人可以帮我做一个很好的教程吗?
什么是彩色图像的红色,绿色或蓝色平面?我们如何生成红色平面?它与其他平面有何不同?请解释生成这些平面的逻辑?
我需要在MATLAB中为图像实现中值滤波.但是,我不允许在MATLAB中使用medfilt2或ordfilt2函数.我们最近也开始学习MATLAB.
是否有可用于中值滤波器或高斯滤波器的代码?
如果我有一张图像,其中有一页文字在均匀背景上拍摄,我该如何自动检测纸张和背景之间的边界?
我想要检测的图像示例如下所示.我将要处理的图像由统一背景上的单个页面组成,它们可以以任何角度旋转.

我使用 Deepface 来检测和对齐面部
from deepface import DeepFace
import cv2
align_face = DeepFace.detectFace("base/g3.jpg")
Run Code Online (Sandbox Code Playgroud)
所以我需要将图像从align_fac保存为jpg。我该怎么做?
我正在使用 OpenCV 处理这种图像:

我有一个包含不同颜色的 numpy 数组,假设我认为这种颜色是用 BGR 编写的:[65 71 72]我想从图像中删除这种颜色,在这种颜色后面留下黑色空格。据我所知,我必须将图像转换为灰度,然后应用蒙版,但在蒙版中我说颜色的下边界和上边界是什么,而我不知道该颜色或任何颜色的边界是什么,以及什么是该颜色的灰度表示。我读到了许多不同的阈值技术,但所有示例都涉及颜色,例如(255 0 0).
我正在尝试用Python解决以下问题。该问题来自我使用有限元法时的图像处理问题。
在我的问题中,我有一组三角形和一条射线。每个三角形由三个 3-D 点组成,射线采用 3-D 点和 3-D 矢量的形式。如何确定光线穿过的第一个三角形?现在我什至没有这方面的算法。任何意见将不胜感激。
我已经成功地用文本裁剪了一个边界框,例如给定这个图像:
我能够准确地给出以下框:
用这个代码:
import re
import shutil
from IPython.display import Image
import requests
import pytesseract, cv2
"""https://www.geeksforgeeks.org/text-detection-and-extraction-using-opencv-and-ocr/"""
# Preprocessing the image starts
# Convert the image to gray scale
img = cv2.imread('img.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Performing OTSU threshold
ret, thresh1 = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU | cv2.THRESH_BINARY_INV)
# Specify structure shape and kernel size.
# Kernel size increases or decreases the area
# of the rectangle to be detected.
# A smaller value like (10, 10) will detect …Run Code Online (Sandbox Code Playgroud) 我有图像的两个坐标 (x, y)
Point N: (x = 2314, y = 751), Width = 2880, Hight = 2304
Point S: (x = 1533, y = 670), Width = 2880, Hight = 2304
Run Code Online (Sandbox Code Playgroud)
当我在 matplotlib 中绘制它们时,它们看起来像这样。(尽管我也在这里绘制了其他一些点。) -
现在,我想计算S and N
我知道的 X 射线板和 X 射线机器之间的距离是 180 厘米。
我已经尝试过使用该math功能。
distance = math.sqrt( ((N[0]-S[0])**2)+((N[1]-S[1])**2) )
print(distance)
Run Code Online (Sandbox Code Playgroud)
这给了我这样的结果
755.2747844327918
但我需要知道距离(以米为单位)。我怎样才能以某种方式做到这一点?